absyntax_utils/search_type_code.c
changeset 375 7a11f9e9e703
parent 349 b826f13c260e
parent 374 01068ccb73b2
child 376 7dcbd8418771
equal deleted inserted replaced
349:b826f13c260e 375:7a11f9e9e703
     1 /*
       
     2  * Copyright (C) 2007-2011: Edouard TISSERANT and Laurent BESSARD
       
     3  *
       
     4  * See COPYING and COPYING.LESSER files for copyright details.
       
     5  *
       
     6  * This program is free software: you can redistribute it and/or modify
       
     7  * it under the terms of the GNU General Public License as published by
       
     8  * the Free Software Foundation, either version 3 of the License, or
       
     9  * (at your option) any later version.
       
    10  *
       
    11  * This program is distributed in the hope that it will be useful,
       
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
       
    14  * GNU General Public License for more details.
       
    15  *
       
    16  * You should have received a copy of the GNU General Public License
       
    17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
       
    18  *
       
    19  */
       
    20 
       
    21 /****
       
    22  * IEC 61131-3 standard function library
       
    23  * generated code, do not edit by hand
       
    24  */
       
    25  
       
    26  
       
    27 
       
    28 void *search_expression_type_c::compute_standard_function_default(function_invocation_c *st_symbol = NULL, il_formal_funct_call_c *il_symbol = NULL) {
       
    29   function_type_t current_function_type;
       
    30   function_call_param_iterator_c *tmp_function_call_param_iterator;
       
    31   if (st_symbol != NULL && il_symbol == NULL) {
       
    32     current_function_type = get_function_type((identifier_c *)st_symbol->function_name);
       
    33     tmp_function_call_param_iterator = new function_call_param_iterator_c(st_symbol);
       
    34   }
       
    35   else if (st_symbol == NULL && il_symbol != NULL) {
       
    36     current_function_type = get_function_type((identifier_c *)il_symbol->function_name);
       
    37     tmp_function_call_param_iterator = new function_call_param_iterator_c(il_symbol);
       
    38   }
       
    39   else
       
    40     ERROR;
       
    41   function_call_param_iterator_c function_call_param_iterator(*tmp_function_call_param_iterator);
       
    42   search_expression_type_c* search_expression_type = this;
       
    43 
       
    44   switch(current_function_type){
       
    45 
       
    46 /****
       
    47  *REAL_TO_SINT
       
    48  */
       
    49     case function_real_to_sint :
       
    50     {
       
    51         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
    52 
       
    53         {
       
    54             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
    55             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
    56             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
    57             symbol_c *IN_type_symbol = NULL;
       
    58             
       
    59             /* Get the value from a foo(<param_value>) style call */
       
    60             if (IN_param_value == NULL)
       
    61               IN_param_value = function_call_param_iterator.next_nf();
       
    62             if (IN_param_value != NULL) {
       
    63               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
    64               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
    65             }
       
    66             
       
    67             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
    68             {
       
    69         
       
    70                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
    71                 return return_type_symbol;
       
    72                 
       
    73             }
       
    74             
       
    75             
       
    76             ERROR;
       
    77         }
       
    78         
       
    79     }/*function_real_to_sint*/
       
    80     break;
       
    81 
       
    82 /****
       
    83  *REAL_TO_LINT
       
    84  */
       
    85     case function_real_to_lint :
       
    86     {
       
    87         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
    88 
       
    89         {
       
    90             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
    91             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
    92             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
    93             symbol_c *IN_type_symbol = NULL;
       
    94             
       
    95             /* Get the value from a foo(<param_value>) style call */
       
    96             if (IN_param_value == NULL)
       
    97               IN_param_value = function_call_param_iterator.next_nf();
       
    98             if (IN_param_value != NULL) {
       
    99               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   100               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   101             }
       
   102             
       
   103             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   104             {
       
   105         
       
   106                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
   107                 return return_type_symbol;
       
   108                 
       
   109             }
       
   110             
       
   111             
       
   112             ERROR;
       
   113         }
       
   114         
       
   115     }/*function_real_to_lint*/
       
   116     break;
       
   117 
       
   118 /****
       
   119  *REAL_TO_DINT
       
   120  */
       
   121     case function_real_to_dint :
       
   122     {
       
   123         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   124 
       
   125         {
       
   126             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   127             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   128             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   129             symbol_c *IN_type_symbol = NULL;
       
   130             
       
   131             /* Get the value from a foo(<param_value>) style call */
       
   132             if (IN_param_value == NULL)
       
   133               IN_param_value = function_call_param_iterator.next_nf();
       
   134             if (IN_param_value != NULL) {
       
   135               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   136               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   137             }
       
   138             
       
   139             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   140             {
       
   141         
       
   142                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
   143                 return return_type_symbol;
       
   144                 
       
   145             }
       
   146             
       
   147             
       
   148             ERROR;
       
   149         }
       
   150         
       
   151     }/*function_real_to_dint*/
       
   152     break;
       
   153 
       
   154 /****
       
   155  *REAL_TO_DATE
       
   156  */
       
   157     case function_real_to_date :
       
   158     {
       
   159         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   160 
       
   161         {
       
   162             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   163             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   164             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   165             symbol_c *IN_type_symbol = NULL;
       
   166             
       
   167             /* Get the value from a foo(<param_value>) style call */
       
   168             if (IN_param_value == NULL)
       
   169               IN_param_value = function_call_param_iterator.next_nf();
       
   170             if (IN_param_value != NULL) {
       
   171               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   172               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   173             }
       
   174             
       
   175             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   176             {
       
   177         
       
   178                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
   179                 return return_type_symbol;
       
   180                 
       
   181             }
       
   182             
       
   183             
       
   184             ERROR;
       
   185         }
       
   186         
       
   187     }/*function_real_to_date*/
       
   188     break;
       
   189 
       
   190 /****
       
   191  *REAL_TO_DWORD
       
   192  */
       
   193     case function_real_to_dword :
       
   194     {
       
   195         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   196 
       
   197         {
       
   198             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   199             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   200             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   201             symbol_c *IN_type_symbol = NULL;
       
   202             
       
   203             /* Get the value from a foo(<param_value>) style call */
       
   204             if (IN_param_value == NULL)
       
   205               IN_param_value = function_call_param_iterator.next_nf();
       
   206             if (IN_param_value != NULL) {
       
   207               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   208               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   209             }
       
   210             
       
   211             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   212             {
       
   213         
       
   214                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
   215                 return return_type_symbol;
       
   216                 
       
   217             }
       
   218             
       
   219             
       
   220             ERROR;
       
   221         }
       
   222         
       
   223     }/*function_real_to_dword*/
       
   224     break;
       
   225 
       
   226 /****
       
   227  *REAL_TO_DT
       
   228  */
       
   229     case function_real_to_dt :
       
   230     {
       
   231         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   232 
       
   233         {
       
   234             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   235             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   236             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   237             symbol_c *IN_type_symbol = NULL;
       
   238             
       
   239             /* Get the value from a foo(<param_value>) style call */
       
   240             if (IN_param_value == NULL)
       
   241               IN_param_value = function_call_param_iterator.next_nf();
       
   242             if (IN_param_value != NULL) {
       
   243               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   244               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   245             }
       
   246             
       
   247             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   248             {
       
   249         
       
   250                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
   251                 return return_type_symbol;
       
   252                 
       
   253             }
       
   254             
       
   255             
       
   256             ERROR;
       
   257         }
       
   258         
       
   259     }/*function_real_to_dt*/
       
   260     break;
       
   261 
       
   262 /****
       
   263  *REAL_TO_TOD
       
   264  */
       
   265     case function_real_to_tod :
       
   266     {
       
   267         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   268 
       
   269         {
       
   270             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   271             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   272             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   273             symbol_c *IN_type_symbol = NULL;
       
   274             
       
   275             /* Get the value from a foo(<param_value>) style call */
       
   276             if (IN_param_value == NULL)
       
   277               IN_param_value = function_call_param_iterator.next_nf();
       
   278             if (IN_param_value != NULL) {
       
   279               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   280               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   281             }
       
   282             
       
   283             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   284             {
       
   285         
       
   286                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
   287                 return return_type_symbol;
       
   288                 
       
   289             }
       
   290             
       
   291             
       
   292             ERROR;
       
   293         }
       
   294         
       
   295     }/*function_real_to_tod*/
       
   296     break;
       
   297 
       
   298 /****
       
   299  *REAL_TO_UDINT
       
   300  */
       
   301     case function_real_to_udint :
       
   302     {
       
   303         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   304 
       
   305         {
       
   306             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   307             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   308             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   309             symbol_c *IN_type_symbol = NULL;
       
   310             
       
   311             /* Get the value from a foo(<param_value>) style call */
       
   312             if (IN_param_value == NULL)
       
   313               IN_param_value = function_call_param_iterator.next_nf();
       
   314             if (IN_param_value != NULL) {
       
   315               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   316               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   317             }
       
   318             
       
   319             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   320             {
       
   321         
       
   322                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
   323                 return return_type_symbol;
       
   324                 
       
   325             }
       
   326             
       
   327             
       
   328             ERROR;
       
   329         }
       
   330         
       
   331     }/*function_real_to_udint*/
       
   332     break;
       
   333 
       
   334 /****
       
   335  *REAL_TO_WORD
       
   336  */
       
   337     case function_real_to_word :
       
   338     {
       
   339         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   340 
       
   341         {
       
   342             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   343             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   344             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   345             symbol_c *IN_type_symbol = NULL;
       
   346             
       
   347             /* Get the value from a foo(<param_value>) style call */
       
   348             if (IN_param_value == NULL)
       
   349               IN_param_value = function_call_param_iterator.next_nf();
       
   350             if (IN_param_value != NULL) {
       
   351               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   352               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   353             }
       
   354             
       
   355             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   356             {
       
   357         
       
   358                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
   359                 return return_type_symbol;
       
   360                 
       
   361             }
       
   362             
       
   363             
       
   364             ERROR;
       
   365         }
       
   366         
       
   367     }/*function_real_to_word*/
       
   368     break;
       
   369 
       
   370 /****
       
   371  *REAL_TO_STRING
       
   372  */
       
   373     case function_real_to_string :
       
   374     {
       
   375         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   376 
       
   377         {
       
   378             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   379             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   380             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   381             symbol_c *IN_type_symbol = NULL;
       
   382             
       
   383             /* Get the value from a foo(<param_value>) style call */
       
   384             if (IN_param_value == NULL)
       
   385               IN_param_value = function_call_param_iterator.next_nf();
       
   386             if (IN_param_value != NULL) {
       
   387               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   388               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   389             }
       
   390             
       
   391             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   392             {
       
   393         
       
   394                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
   395                 return return_type_symbol;
       
   396                 
       
   397             }
       
   398             
       
   399             
       
   400             ERROR;
       
   401         }
       
   402         
       
   403     }/*function_real_to_string*/
       
   404     break;
       
   405 
       
   406 /****
       
   407  *REAL_TO_LWORD
       
   408  */
       
   409     case function_real_to_lword :
       
   410     {
       
   411         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   412 
       
   413         {
       
   414             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   415             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   416             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   417             symbol_c *IN_type_symbol = NULL;
       
   418             
       
   419             /* Get the value from a foo(<param_value>) style call */
       
   420             if (IN_param_value == NULL)
       
   421               IN_param_value = function_call_param_iterator.next_nf();
       
   422             if (IN_param_value != NULL) {
       
   423               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   424               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   425             }
       
   426             
       
   427             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   428             {
       
   429         
       
   430                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
   431                 return return_type_symbol;
       
   432                 
       
   433             }
       
   434             
       
   435             
       
   436             ERROR;
       
   437         }
       
   438         
       
   439     }/*function_real_to_lword*/
       
   440     break;
       
   441 
       
   442 /****
       
   443  *REAL_TO_UINT
       
   444  */
       
   445     case function_real_to_uint :
       
   446     {
       
   447         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   448 
       
   449         {
       
   450             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   451             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   452             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   453             symbol_c *IN_type_symbol = NULL;
       
   454             
       
   455             /* Get the value from a foo(<param_value>) style call */
       
   456             if (IN_param_value == NULL)
       
   457               IN_param_value = function_call_param_iterator.next_nf();
       
   458             if (IN_param_value != NULL) {
       
   459               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   460               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   461             }
       
   462             
       
   463             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   464             {
       
   465         
       
   466                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
   467                 return return_type_symbol;
       
   468                 
       
   469             }
       
   470             
       
   471             
       
   472             ERROR;
       
   473         }
       
   474         
       
   475     }/*function_real_to_uint*/
       
   476     break;
       
   477 
       
   478 /****
       
   479  *REAL_TO_LREAL
       
   480  */
       
   481     case function_real_to_lreal :
       
   482     {
       
   483         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   484 
       
   485         {
       
   486             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   487             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   488             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   489             symbol_c *IN_type_symbol = NULL;
       
   490             
       
   491             /* Get the value from a foo(<param_value>) style call */
       
   492             if (IN_param_value == NULL)
       
   493               IN_param_value = function_call_param_iterator.next_nf();
       
   494             if (IN_param_value != NULL) {
       
   495               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   496               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   497             }
       
   498             
       
   499             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   500             {
       
   501         
       
   502                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
   503                 return return_type_symbol;
       
   504                 
       
   505             }
       
   506             
       
   507             
       
   508             ERROR;
       
   509         }
       
   510         
       
   511     }/*function_real_to_lreal*/
       
   512     break;
       
   513 
       
   514 /****
       
   515  *REAL_TO_BYTE
       
   516  */
       
   517     case function_real_to_byte :
       
   518     {
       
   519         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   520 
       
   521         {
       
   522             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   523             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   524             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   525             symbol_c *IN_type_symbol = NULL;
       
   526             
       
   527             /* Get the value from a foo(<param_value>) style call */
       
   528             if (IN_param_value == NULL)
       
   529               IN_param_value = function_call_param_iterator.next_nf();
       
   530             if (IN_param_value != NULL) {
       
   531               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   532               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   533             }
       
   534             
       
   535             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   536             {
       
   537         
       
   538                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
   539                 return return_type_symbol;
       
   540                 
       
   541             }
       
   542             
       
   543             
       
   544             ERROR;
       
   545         }
       
   546         
       
   547     }/*function_real_to_byte*/
       
   548     break;
       
   549 
       
   550 /****
       
   551  *REAL_TO_USINT
       
   552  */
       
   553     case function_real_to_usint :
       
   554     {
       
   555         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   556 
       
   557         {
       
   558             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   559             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   560             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   561             symbol_c *IN_type_symbol = NULL;
       
   562             
       
   563             /* Get the value from a foo(<param_value>) style call */
       
   564             if (IN_param_value == NULL)
       
   565               IN_param_value = function_call_param_iterator.next_nf();
       
   566             if (IN_param_value != NULL) {
       
   567               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   568               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   569             }
       
   570             
       
   571             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   572             {
       
   573         
       
   574                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
   575                 return return_type_symbol;
       
   576                 
       
   577             }
       
   578             
       
   579             
       
   580             ERROR;
       
   581         }
       
   582         
       
   583     }/*function_real_to_usint*/
       
   584     break;
       
   585 
       
   586 /****
       
   587  *REAL_TO_ULINT
       
   588  */
       
   589     case function_real_to_ulint :
       
   590     {
       
   591         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   592 
       
   593         {
       
   594             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   595             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   596             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   597             symbol_c *IN_type_symbol = NULL;
       
   598             
       
   599             /* Get the value from a foo(<param_value>) style call */
       
   600             if (IN_param_value == NULL)
       
   601               IN_param_value = function_call_param_iterator.next_nf();
       
   602             if (IN_param_value != NULL) {
       
   603               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   604               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   605             }
       
   606             
       
   607             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   608             {
       
   609         
       
   610                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
   611                 return return_type_symbol;
       
   612                 
       
   613             }
       
   614             
       
   615             
       
   616             ERROR;
       
   617         }
       
   618         
       
   619     }/*function_real_to_ulint*/
       
   620     break;
       
   621 
       
   622 /****
       
   623  *REAL_TO_BOOL
       
   624  */
       
   625     case function_real_to_bool :
       
   626     {
       
   627         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   628 
       
   629         {
       
   630             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   631             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   632             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   633             symbol_c *IN_type_symbol = NULL;
       
   634             
       
   635             /* Get the value from a foo(<param_value>) style call */
       
   636             if (IN_param_value == NULL)
       
   637               IN_param_value = function_call_param_iterator.next_nf();
       
   638             if (IN_param_value != NULL) {
       
   639               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   640               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   641             }
       
   642             
       
   643             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   644             {
       
   645         
       
   646                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
   647                 return return_type_symbol;
       
   648                 
       
   649             }
       
   650             
       
   651             
       
   652             ERROR;
       
   653         }
       
   654         
       
   655     }/*function_real_to_bool*/
       
   656     break;
       
   657 
       
   658 /****
       
   659  *REAL_TO_TIME
       
   660  */
       
   661     case function_real_to_time :
       
   662     {
       
   663         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   664 
       
   665         {
       
   666             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   667             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   668             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   669             symbol_c *IN_type_symbol = NULL;
       
   670             
       
   671             /* Get the value from a foo(<param_value>) style call */
       
   672             if (IN_param_value == NULL)
       
   673               IN_param_value = function_call_param_iterator.next_nf();
       
   674             if (IN_param_value != NULL) {
       
   675               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   676               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   677             }
       
   678             
       
   679             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   680             {
       
   681         
       
   682                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
   683                 return return_type_symbol;
       
   684                 
       
   685             }
       
   686             
       
   687             
       
   688             ERROR;
       
   689         }
       
   690         
       
   691     }/*function_real_to_time*/
       
   692     break;
       
   693 
       
   694 /****
       
   695  *REAL_TO_INT
       
   696  */
       
   697     case function_real_to_int :
       
   698     {
       
   699         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
   700 
       
   701         {
       
   702             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   703             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   704             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   705             symbol_c *IN_type_symbol = NULL;
       
   706             
       
   707             /* Get the value from a foo(<param_value>) style call */
       
   708             if (IN_param_value == NULL)
       
   709               IN_param_value = function_call_param_iterator.next_nf();
       
   710             if (IN_param_value != NULL) {
       
   711               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   712               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   713             }
       
   714             
       
   715             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
   716             {
       
   717         
       
   718                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
   719                 return return_type_symbol;
       
   720                 
       
   721             }
       
   722             
       
   723             
       
   724             ERROR;
       
   725         }
       
   726         
       
   727     }/*function_real_to_int*/
       
   728     break;
       
   729 
       
   730 /****
       
   731  *SINT_TO_REAL
       
   732  */
       
   733     case function_sint_to_real :
       
   734     {
       
   735         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   736 
       
   737         {
       
   738             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   739             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   740             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   741             symbol_c *IN_type_symbol = NULL;
       
   742             
       
   743             /* Get the value from a foo(<param_value>) style call */
       
   744             if (IN_param_value == NULL)
       
   745               IN_param_value = function_call_param_iterator.next_nf();
       
   746             if (IN_param_value != NULL) {
       
   747               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   748               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   749             }
       
   750             
       
   751             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   752             {
       
   753         
       
   754                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
   755                 return return_type_symbol;
       
   756                 
       
   757             }
       
   758             
       
   759             
       
   760             ERROR;
       
   761         }
       
   762         
       
   763     }/*function_sint_to_real*/
       
   764     break;
       
   765 
       
   766 /****
       
   767  *SINT_TO_LINT
       
   768  */
       
   769     case function_sint_to_lint :
       
   770     {
       
   771         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   772 
       
   773         {
       
   774             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   775             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   776             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   777             symbol_c *IN_type_symbol = NULL;
       
   778             
       
   779             /* Get the value from a foo(<param_value>) style call */
       
   780             if (IN_param_value == NULL)
       
   781               IN_param_value = function_call_param_iterator.next_nf();
       
   782             if (IN_param_value != NULL) {
       
   783               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   784               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   785             }
       
   786             
       
   787             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   788             {
       
   789         
       
   790                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
   791                 return return_type_symbol;
       
   792                 
       
   793             }
       
   794             
       
   795             
       
   796             ERROR;
       
   797         }
       
   798         
       
   799     }/*function_sint_to_lint*/
       
   800     break;
       
   801 
       
   802 /****
       
   803  *SINT_TO_DINT
       
   804  */
       
   805     case function_sint_to_dint :
       
   806     {
       
   807         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   808 
       
   809         {
       
   810             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   811             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   812             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   813             symbol_c *IN_type_symbol = NULL;
       
   814             
       
   815             /* Get the value from a foo(<param_value>) style call */
       
   816             if (IN_param_value == NULL)
       
   817               IN_param_value = function_call_param_iterator.next_nf();
       
   818             if (IN_param_value != NULL) {
       
   819               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   820               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   821             }
       
   822             
       
   823             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   824             {
       
   825         
       
   826                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
   827                 return return_type_symbol;
       
   828                 
       
   829             }
       
   830             
       
   831             
       
   832             ERROR;
       
   833         }
       
   834         
       
   835     }/*function_sint_to_dint*/
       
   836     break;
       
   837 
       
   838 /****
       
   839  *SINT_TO_DATE
       
   840  */
       
   841     case function_sint_to_date :
       
   842     {
       
   843         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   844 
       
   845         {
       
   846             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   847             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   848             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   849             symbol_c *IN_type_symbol = NULL;
       
   850             
       
   851             /* Get the value from a foo(<param_value>) style call */
       
   852             if (IN_param_value == NULL)
       
   853               IN_param_value = function_call_param_iterator.next_nf();
       
   854             if (IN_param_value != NULL) {
       
   855               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   856               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   857             }
       
   858             
       
   859             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   860             {
       
   861         
       
   862                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
   863                 return return_type_symbol;
       
   864                 
       
   865             }
       
   866             
       
   867             
       
   868             ERROR;
       
   869         }
       
   870         
       
   871     }/*function_sint_to_date*/
       
   872     break;
       
   873 
       
   874 /****
       
   875  *SINT_TO_DWORD
       
   876  */
       
   877     case function_sint_to_dword :
       
   878     {
       
   879         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   880 
       
   881         {
       
   882             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   883             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   884             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   885             symbol_c *IN_type_symbol = NULL;
       
   886             
       
   887             /* Get the value from a foo(<param_value>) style call */
       
   888             if (IN_param_value == NULL)
       
   889               IN_param_value = function_call_param_iterator.next_nf();
       
   890             if (IN_param_value != NULL) {
       
   891               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   892               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   893             }
       
   894             
       
   895             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   896             {
       
   897         
       
   898                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
   899                 return return_type_symbol;
       
   900                 
       
   901             }
       
   902             
       
   903             
       
   904             ERROR;
       
   905         }
       
   906         
       
   907     }/*function_sint_to_dword*/
       
   908     break;
       
   909 
       
   910 /****
       
   911  *SINT_TO_DT
       
   912  */
       
   913     case function_sint_to_dt :
       
   914     {
       
   915         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   916 
       
   917         {
       
   918             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   919             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   920             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   921             symbol_c *IN_type_symbol = NULL;
       
   922             
       
   923             /* Get the value from a foo(<param_value>) style call */
       
   924             if (IN_param_value == NULL)
       
   925               IN_param_value = function_call_param_iterator.next_nf();
       
   926             if (IN_param_value != NULL) {
       
   927               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   928               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   929             }
       
   930             
       
   931             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   932             {
       
   933         
       
   934                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
   935                 return return_type_symbol;
       
   936                 
       
   937             }
       
   938             
       
   939             
       
   940             ERROR;
       
   941         }
       
   942         
       
   943     }/*function_sint_to_dt*/
       
   944     break;
       
   945 
       
   946 /****
       
   947  *SINT_TO_TOD
       
   948  */
       
   949     case function_sint_to_tod :
       
   950     {
       
   951         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   952 
       
   953         {
       
   954             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   955             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   956             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   957             symbol_c *IN_type_symbol = NULL;
       
   958             
       
   959             /* Get the value from a foo(<param_value>) style call */
       
   960             if (IN_param_value == NULL)
       
   961               IN_param_value = function_call_param_iterator.next_nf();
       
   962             if (IN_param_value != NULL) {
       
   963               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
   964               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
   965             }
       
   966             
       
   967             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
   968             {
       
   969         
       
   970                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
   971                 return return_type_symbol;
       
   972                 
       
   973             }
       
   974             
       
   975             
       
   976             ERROR;
       
   977         }
       
   978         
       
   979     }/*function_sint_to_tod*/
       
   980     break;
       
   981 
       
   982 /****
       
   983  *SINT_TO_UDINT
       
   984  */
       
   985     case function_sint_to_udint :
       
   986     {
       
   987         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
   988 
       
   989         {
       
   990             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
   991             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
   992             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
   993             symbol_c *IN_type_symbol = NULL;
       
   994             
       
   995             /* Get the value from a foo(<param_value>) style call */
       
   996             if (IN_param_value == NULL)
       
   997               IN_param_value = function_call_param_iterator.next_nf();
       
   998             if (IN_param_value != NULL) {
       
   999               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1000               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1001             }
       
  1002             
       
  1003             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1004             {
       
  1005         
       
  1006                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  1007                 return return_type_symbol;
       
  1008                 
       
  1009             }
       
  1010             
       
  1011             
       
  1012             ERROR;
       
  1013         }
       
  1014         
       
  1015     }/*function_sint_to_udint*/
       
  1016     break;
       
  1017 
       
  1018 /****
       
  1019  *SINT_TO_WORD
       
  1020  */
       
  1021     case function_sint_to_word :
       
  1022     {
       
  1023         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1024 
       
  1025         {
       
  1026             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1027             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1028             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1029             symbol_c *IN_type_symbol = NULL;
       
  1030             
       
  1031             /* Get the value from a foo(<param_value>) style call */
       
  1032             if (IN_param_value == NULL)
       
  1033               IN_param_value = function_call_param_iterator.next_nf();
       
  1034             if (IN_param_value != NULL) {
       
  1035               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1036               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1037             }
       
  1038             
       
  1039             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1040             {
       
  1041         
       
  1042                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  1043                 return return_type_symbol;
       
  1044                 
       
  1045             }
       
  1046             
       
  1047             
       
  1048             ERROR;
       
  1049         }
       
  1050         
       
  1051     }/*function_sint_to_word*/
       
  1052     break;
       
  1053 
       
  1054 /****
       
  1055  *SINT_TO_STRING
       
  1056  */
       
  1057     case function_sint_to_string :
       
  1058     {
       
  1059         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1060 
       
  1061         {
       
  1062             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1063             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1064             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1065             symbol_c *IN_type_symbol = NULL;
       
  1066             
       
  1067             /* Get the value from a foo(<param_value>) style call */
       
  1068             if (IN_param_value == NULL)
       
  1069               IN_param_value = function_call_param_iterator.next_nf();
       
  1070             if (IN_param_value != NULL) {
       
  1071               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1072               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1073             }
       
  1074             
       
  1075             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1076             {
       
  1077         
       
  1078                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  1079                 return return_type_symbol;
       
  1080                 
       
  1081             }
       
  1082             
       
  1083             
       
  1084             ERROR;
       
  1085         }
       
  1086         
       
  1087     }/*function_sint_to_string*/
       
  1088     break;
       
  1089 
       
  1090 /****
       
  1091  *SINT_TO_LWORD
       
  1092  */
       
  1093     case function_sint_to_lword :
       
  1094     {
       
  1095         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1096 
       
  1097         {
       
  1098             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1099             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1100             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1101             symbol_c *IN_type_symbol = NULL;
       
  1102             
       
  1103             /* Get the value from a foo(<param_value>) style call */
       
  1104             if (IN_param_value == NULL)
       
  1105               IN_param_value = function_call_param_iterator.next_nf();
       
  1106             if (IN_param_value != NULL) {
       
  1107               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1108               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1109             }
       
  1110             
       
  1111             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1112             {
       
  1113         
       
  1114                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  1115                 return return_type_symbol;
       
  1116                 
       
  1117             }
       
  1118             
       
  1119             
       
  1120             ERROR;
       
  1121         }
       
  1122         
       
  1123     }/*function_sint_to_lword*/
       
  1124     break;
       
  1125 
       
  1126 /****
       
  1127  *SINT_TO_UINT
       
  1128  */
       
  1129     case function_sint_to_uint :
       
  1130     {
       
  1131         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1132 
       
  1133         {
       
  1134             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1135             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1136             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1137             symbol_c *IN_type_symbol = NULL;
       
  1138             
       
  1139             /* Get the value from a foo(<param_value>) style call */
       
  1140             if (IN_param_value == NULL)
       
  1141               IN_param_value = function_call_param_iterator.next_nf();
       
  1142             if (IN_param_value != NULL) {
       
  1143               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1144               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1145             }
       
  1146             
       
  1147             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1148             {
       
  1149         
       
  1150                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  1151                 return return_type_symbol;
       
  1152                 
       
  1153             }
       
  1154             
       
  1155             
       
  1156             ERROR;
       
  1157         }
       
  1158         
       
  1159     }/*function_sint_to_uint*/
       
  1160     break;
       
  1161 
       
  1162 /****
       
  1163  *SINT_TO_LREAL
       
  1164  */
       
  1165     case function_sint_to_lreal :
       
  1166     {
       
  1167         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1168 
       
  1169         {
       
  1170             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1171             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1172             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1173             symbol_c *IN_type_symbol = NULL;
       
  1174             
       
  1175             /* Get the value from a foo(<param_value>) style call */
       
  1176             if (IN_param_value == NULL)
       
  1177               IN_param_value = function_call_param_iterator.next_nf();
       
  1178             if (IN_param_value != NULL) {
       
  1179               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1180               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1181             }
       
  1182             
       
  1183             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1184             {
       
  1185         
       
  1186                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  1187                 return return_type_symbol;
       
  1188                 
       
  1189             }
       
  1190             
       
  1191             
       
  1192             ERROR;
       
  1193         }
       
  1194         
       
  1195     }/*function_sint_to_lreal*/
       
  1196     break;
       
  1197 
       
  1198 /****
       
  1199  *SINT_TO_BYTE
       
  1200  */
       
  1201     case function_sint_to_byte :
       
  1202     {
       
  1203         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1204 
       
  1205         {
       
  1206             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1207             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1208             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1209             symbol_c *IN_type_symbol = NULL;
       
  1210             
       
  1211             /* Get the value from a foo(<param_value>) style call */
       
  1212             if (IN_param_value == NULL)
       
  1213               IN_param_value = function_call_param_iterator.next_nf();
       
  1214             if (IN_param_value != NULL) {
       
  1215               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1216               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1217             }
       
  1218             
       
  1219             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1220             {
       
  1221         
       
  1222                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  1223                 return return_type_symbol;
       
  1224                 
       
  1225             }
       
  1226             
       
  1227             
       
  1228             ERROR;
       
  1229         }
       
  1230         
       
  1231     }/*function_sint_to_byte*/
       
  1232     break;
       
  1233 
       
  1234 /****
       
  1235  *SINT_TO_USINT
       
  1236  */
       
  1237     case function_sint_to_usint :
       
  1238     {
       
  1239         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1240 
       
  1241         {
       
  1242             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1243             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1244             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1245             symbol_c *IN_type_symbol = NULL;
       
  1246             
       
  1247             /* Get the value from a foo(<param_value>) style call */
       
  1248             if (IN_param_value == NULL)
       
  1249               IN_param_value = function_call_param_iterator.next_nf();
       
  1250             if (IN_param_value != NULL) {
       
  1251               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1252               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1253             }
       
  1254             
       
  1255             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1256             {
       
  1257         
       
  1258                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  1259                 return return_type_symbol;
       
  1260                 
       
  1261             }
       
  1262             
       
  1263             
       
  1264             ERROR;
       
  1265         }
       
  1266         
       
  1267     }/*function_sint_to_usint*/
       
  1268     break;
       
  1269 
       
  1270 /****
       
  1271  *SINT_TO_ULINT
       
  1272  */
       
  1273     case function_sint_to_ulint :
       
  1274     {
       
  1275         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1276 
       
  1277         {
       
  1278             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1279             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1280             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1281             symbol_c *IN_type_symbol = NULL;
       
  1282             
       
  1283             /* Get the value from a foo(<param_value>) style call */
       
  1284             if (IN_param_value == NULL)
       
  1285               IN_param_value = function_call_param_iterator.next_nf();
       
  1286             if (IN_param_value != NULL) {
       
  1287               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1288               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1289             }
       
  1290             
       
  1291             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1292             {
       
  1293         
       
  1294                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  1295                 return return_type_symbol;
       
  1296                 
       
  1297             }
       
  1298             
       
  1299             
       
  1300             ERROR;
       
  1301         }
       
  1302         
       
  1303     }/*function_sint_to_ulint*/
       
  1304     break;
       
  1305 
       
  1306 /****
       
  1307  *SINT_TO_BOOL
       
  1308  */
       
  1309     case function_sint_to_bool :
       
  1310     {
       
  1311         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1312 
       
  1313         {
       
  1314             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1315             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1316             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1317             symbol_c *IN_type_symbol = NULL;
       
  1318             
       
  1319             /* Get the value from a foo(<param_value>) style call */
       
  1320             if (IN_param_value == NULL)
       
  1321               IN_param_value = function_call_param_iterator.next_nf();
       
  1322             if (IN_param_value != NULL) {
       
  1323               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1324               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1325             }
       
  1326             
       
  1327             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1328             {
       
  1329         
       
  1330                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  1331                 return return_type_symbol;
       
  1332                 
       
  1333             }
       
  1334             
       
  1335             
       
  1336             ERROR;
       
  1337         }
       
  1338         
       
  1339     }/*function_sint_to_bool*/
       
  1340     break;
       
  1341 
       
  1342 /****
       
  1343  *SINT_TO_TIME
       
  1344  */
       
  1345     case function_sint_to_time :
       
  1346     {
       
  1347         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1348 
       
  1349         {
       
  1350             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1351             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1352             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1353             symbol_c *IN_type_symbol = NULL;
       
  1354             
       
  1355             /* Get the value from a foo(<param_value>) style call */
       
  1356             if (IN_param_value == NULL)
       
  1357               IN_param_value = function_call_param_iterator.next_nf();
       
  1358             if (IN_param_value != NULL) {
       
  1359               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1360               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1361             }
       
  1362             
       
  1363             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1364             {
       
  1365         
       
  1366                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  1367                 return return_type_symbol;
       
  1368                 
       
  1369             }
       
  1370             
       
  1371             
       
  1372             ERROR;
       
  1373         }
       
  1374         
       
  1375     }/*function_sint_to_time*/
       
  1376     break;
       
  1377 
       
  1378 /****
       
  1379  *SINT_TO_INT
       
  1380  */
       
  1381     case function_sint_to_int :
       
  1382     {
       
  1383         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
  1384 
       
  1385         {
       
  1386             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1387             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1388             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1389             symbol_c *IN_type_symbol = NULL;
       
  1390             
       
  1391             /* Get the value from a foo(<param_value>) style call */
       
  1392             if (IN_param_value == NULL)
       
  1393               IN_param_value = function_call_param_iterator.next_nf();
       
  1394             if (IN_param_value != NULL) {
       
  1395               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1396               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1397             }
       
  1398             
       
  1399             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
  1400             {
       
  1401         
       
  1402                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  1403                 return return_type_symbol;
       
  1404                 
       
  1405             }
       
  1406             
       
  1407             
       
  1408             ERROR;
       
  1409         }
       
  1410         
       
  1411     }/*function_sint_to_int*/
       
  1412     break;
       
  1413 
       
  1414 /****
       
  1415  *LINT_TO_REAL
       
  1416  */
       
  1417     case function_lint_to_real :
       
  1418     {
       
  1419         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1420 
       
  1421         {
       
  1422             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1423             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1424             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1425             symbol_c *IN_type_symbol = NULL;
       
  1426             
       
  1427             /* Get the value from a foo(<param_value>) style call */
       
  1428             if (IN_param_value == NULL)
       
  1429               IN_param_value = function_call_param_iterator.next_nf();
       
  1430             if (IN_param_value != NULL) {
       
  1431               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1432               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1433             }
       
  1434             
       
  1435             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1436             {
       
  1437         
       
  1438                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  1439                 return return_type_symbol;
       
  1440                 
       
  1441             }
       
  1442             
       
  1443             
       
  1444             ERROR;
       
  1445         }
       
  1446         
       
  1447     }/*function_lint_to_real*/
       
  1448     break;
       
  1449 
       
  1450 /****
       
  1451  *LINT_TO_SINT
       
  1452  */
       
  1453     case function_lint_to_sint :
       
  1454     {
       
  1455         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1456 
       
  1457         {
       
  1458             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1459             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1460             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1461             symbol_c *IN_type_symbol = NULL;
       
  1462             
       
  1463             /* Get the value from a foo(<param_value>) style call */
       
  1464             if (IN_param_value == NULL)
       
  1465               IN_param_value = function_call_param_iterator.next_nf();
       
  1466             if (IN_param_value != NULL) {
       
  1467               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1468               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1469             }
       
  1470             
       
  1471             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1472             {
       
  1473         
       
  1474                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  1475                 return return_type_symbol;
       
  1476                 
       
  1477             }
       
  1478             
       
  1479             
       
  1480             ERROR;
       
  1481         }
       
  1482         
       
  1483     }/*function_lint_to_sint*/
       
  1484     break;
       
  1485 
       
  1486 /****
       
  1487  *LINT_TO_DINT
       
  1488  */
       
  1489     case function_lint_to_dint :
       
  1490     {
       
  1491         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1492 
       
  1493         {
       
  1494             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1495             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1496             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1497             symbol_c *IN_type_symbol = NULL;
       
  1498             
       
  1499             /* Get the value from a foo(<param_value>) style call */
       
  1500             if (IN_param_value == NULL)
       
  1501               IN_param_value = function_call_param_iterator.next_nf();
       
  1502             if (IN_param_value != NULL) {
       
  1503               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1504               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1505             }
       
  1506             
       
  1507             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1508             {
       
  1509         
       
  1510                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  1511                 return return_type_symbol;
       
  1512                 
       
  1513             }
       
  1514             
       
  1515             
       
  1516             ERROR;
       
  1517         }
       
  1518         
       
  1519     }/*function_lint_to_dint*/
       
  1520     break;
       
  1521 
       
  1522 /****
       
  1523  *LINT_TO_DATE
       
  1524  */
       
  1525     case function_lint_to_date :
       
  1526     {
       
  1527         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1528 
       
  1529         {
       
  1530             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1531             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1532             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1533             symbol_c *IN_type_symbol = NULL;
       
  1534             
       
  1535             /* Get the value from a foo(<param_value>) style call */
       
  1536             if (IN_param_value == NULL)
       
  1537               IN_param_value = function_call_param_iterator.next_nf();
       
  1538             if (IN_param_value != NULL) {
       
  1539               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1540               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1541             }
       
  1542             
       
  1543             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1544             {
       
  1545         
       
  1546                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  1547                 return return_type_symbol;
       
  1548                 
       
  1549             }
       
  1550             
       
  1551             
       
  1552             ERROR;
       
  1553         }
       
  1554         
       
  1555     }/*function_lint_to_date*/
       
  1556     break;
       
  1557 
       
  1558 /****
       
  1559  *LINT_TO_DWORD
       
  1560  */
       
  1561     case function_lint_to_dword :
       
  1562     {
       
  1563         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1564 
       
  1565         {
       
  1566             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1567             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1568             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1569             symbol_c *IN_type_symbol = NULL;
       
  1570             
       
  1571             /* Get the value from a foo(<param_value>) style call */
       
  1572             if (IN_param_value == NULL)
       
  1573               IN_param_value = function_call_param_iterator.next_nf();
       
  1574             if (IN_param_value != NULL) {
       
  1575               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1576               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1577             }
       
  1578             
       
  1579             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1580             {
       
  1581         
       
  1582                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  1583                 return return_type_symbol;
       
  1584                 
       
  1585             }
       
  1586             
       
  1587             
       
  1588             ERROR;
       
  1589         }
       
  1590         
       
  1591     }/*function_lint_to_dword*/
       
  1592     break;
       
  1593 
       
  1594 /****
       
  1595  *LINT_TO_DT
       
  1596  */
       
  1597     case function_lint_to_dt :
       
  1598     {
       
  1599         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1600 
       
  1601         {
       
  1602             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1603             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1604             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1605             symbol_c *IN_type_symbol = NULL;
       
  1606             
       
  1607             /* Get the value from a foo(<param_value>) style call */
       
  1608             if (IN_param_value == NULL)
       
  1609               IN_param_value = function_call_param_iterator.next_nf();
       
  1610             if (IN_param_value != NULL) {
       
  1611               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1612               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1613             }
       
  1614             
       
  1615             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1616             {
       
  1617         
       
  1618                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  1619                 return return_type_symbol;
       
  1620                 
       
  1621             }
       
  1622             
       
  1623             
       
  1624             ERROR;
       
  1625         }
       
  1626         
       
  1627     }/*function_lint_to_dt*/
       
  1628     break;
       
  1629 
       
  1630 /****
       
  1631  *LINT_TO_TOD
       
  1632  */
       
  1633     case function_lint_to_tod :
       
  1634     {
       
  1635         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1636 
       
  1637         {
       
  1638             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1639             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1640             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1641             symbol_c *IN_type_symbol = NULL;
       
  1642             
       
  1643             /* Get the value from a foo(<param_value>) style call */
       
  1644             if (IN_param_value == NULL)
       
  1645               IN_param_value = function_call_param_iterator.next_nf();
       
  1646             if (IN_param_value != NULL) {
       
  1647               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1648               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1649             }
       
  1650             
       
  1651             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1652             {
       
  1653         
       
  1654                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  1655                 return return_type_symbol;
       
  1656                 
       
  1657             }
       
  1658             
       
  1659             
       
  1660             ERROR;
       
  1661         }
       
  1662         
       
  1663     }/*function_lint_to_tod*/
       
  1664     break;
       
  1665 
       
  1666 /****
       
  1667  *LINT_TO_UDINT
       
  1668  */
       
  1669     case function_lint_to_udint :
       
  1670     {
       
  1671         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1672 
       
  1673         {
       
  1674             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1675             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1676             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1677             symbol_c *IN_type_symbol = NULL;
       
  1678             
       
  1679             /* Get the value from a foo(<param_value>) style call */
       
  1680             if (IN_param_value == NULL)
       
  1681               IN_param_value = function_call_param_iterator.next_nf();
       
  1682             if (IN_param_value != NULL) {
       
  1683               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1684               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1685             }
       
  1686             
       
  1687             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1688             {
       
  1689         
       
  1690                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  1691                 return return_type_symbol;
       
  1692                 
       
  1693             }
       
  1694             
       
  1695             
       
  1696             ERROR;
       
  1697         }
       
  1698         
       
  1699     }/*function_lint_to_udint*/
       
  1700     break;
       
  1701 
       
  1702 /****
       
  1703  *LINT_TO_WORD
       
  1704  */
       
  1705     case function_lint_to_word :
       
  1706     {
       
  1707         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1708 
       
  1709         {
       
  1710             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1711             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1712             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1713             symbol_c *IN_type_symbol = NULL;
       
  1714             
       
  1715             /* Get the value from a foo(<param_value>) style call */
       
  1716             if (IN_param_value == NULL)
       
  1717               IN_param_value = function_call_param_iterator.next_nf();
       
  1718             if (IN_param_value != NULL) {
       
  1719               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1720               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1721             }
       
  1722             
       
  1723             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1724             {
       
  1725         
       
  1726                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  1727                 return return_type_symbol;
       
  1728                 
       
  1729             }
       
  1730             
       
  1731             
       
  1732             ERROR;
       
  1733         }
       
  1734         
       
  1735     }/*function_lint_to_word*/
       
  1736     break;
       
  1737 
       
  1738 /****
       
  1739  *LINT_TO_STRING
       
  1740  */
       
  1741     case function_lint_to_string :
       
  1742     {
       
  1743         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1744 
       
  1745         {
       
  1746             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1747             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1748             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1749             symbol_c *IN_type_symbol = NULL;
       
  1750             
       
  1751             /* Get the value from a foo(<param_value>) style call */
       
  1752             if (IN_param_value == NULL)
       
  1753               IN_param_value = function_call_param_iterator.next_nf();
       
  1754             if (IN_param_value != NULL) {
       
  1755               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1756               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1757             }
       
  1758             
       
  1759             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1760             {
       
  1761         
       
  1762                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  1763                 return return_type_symbol;
       
  1764                 
       
  1765             }
       
  1766             
       
  1767             
       
  1768             ERROR;
       
  1769         }
       
  1770         
       
  1771     }/*function_lint_to_string*/
       
  1772     break;
       
  1773 
       
  1774 /****
       
  1775  *LINT_TO_LWORD
       
  1776  */
       
  1777     case function_lint_to_lword :
       
  1778     {
       
  1779         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1780 
       
  1781         {
       
  1782             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1783             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1784             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1785             symbol_c *IN_type_symbol = NULL;
       
  1786             
       
  1787             /* Get the value from a foo(<param_value>) style call */
       
  1788             if (IN_param_value == NULL)
       
  1789               IN_param_value = function_call_param_iterator.next_nf();
       
  1790             if (IN_param_value != NULL) {
       
  1791               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1792               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1793             }
       
  1794             
       
  1795             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1796             {
       
  1797         
       
  1798                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  1799                 return return_type_symbol;
       
  1800                 
       
  1801             }
       
  1802             
       
  1803             
       
  1804             ERROR;
       
  1805         }
       
  1806         
       
  1807     }/*function_lint_to_lword*/
       
  1808     break;
       
  1809 
       
  1810 /****
       
  1811  *LINT_TO_UINT
       
  1812  */
       
  1813     case function_lint_to_uint :
       
  1814     {
       
  1815         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1816 
       
  1817         {
       
  1818             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1819             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1820             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1821             symbol_c *IN_type_symbol = NULL;
       
  1822             
       
  1823             /* Get the value from a foo(<param_value>) style call */
       
  1824             if (IN_param_value == NULL)
       
  1825               IN_param_value = function_call_param_iterator.next_nf();
       
  1826             if (IN_param_value != NULL) {
       
  1827               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1828               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1829             }
       
  1830             
       
  1831             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1832             {
       
  1833         
       
  1834                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  1835                 return return_type_symbol;
       
  1836                 
       
  1837             }
       
  1838             
       
  1839             
       
  1840             ERROR;
       
  1841         }
       
  1842         
       
  1843     }/*function_lint_to_uint*/
       
  1844     break;
       
  1845 
       
  1846 /****
       
  1847  *LINT_TO_LREAL
       
  1848  */
       
  1849     case function_lint_to_lreal :
       
  1850     {
       
  1851         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1852 
       
  1853         {
       
  1854             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1855             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1856             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1857             symbol_c *IN_type_symbol = NULL;
       
  1858             
       
  1859             /* Get the value from a foo(<param_value>) style call */
       
  1860             if (IN_param_value == NULL)
       
  1861               IN_param_value = function_call_param_iterator.next_nf();
       
  1862             if (IN_param_value != NULL) {
       
  1863               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1864               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1865             }
       
  1866             
       
  1867             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1868             {
       
  1869         
       
  1870                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  1871                 return return_type_symbol;
       
  1872                 
       
  1873             }
       
  1874             
       
  1875             
       
  1876             ERROR;
       
  1877         }
       
  1878         
       
  1879     }/*function_lint_to_lreal*/
       
  1880     break;
       
  1881 
       
  1882 /****
       
  1883  *LINT_TO_BYTE
       
  1884  */
       
  1885     case function_lint_to_byte :
       
  1886     {
       
  1887         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1888 
       
  1889         {
       
  1890             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1891             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1892             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1893             symbol_c *IN_type_symbol = NULL;
       
  1894             
       
  1895             /* Get the value from a foo(<param_value>) style call */
       
  1896             if (IN_param_value == NULL)
       
  1897               IN_param_value = function_call_param_iterator.next_nf();
       
  1898             if (IN_param_value != NULL) {
       
  1899               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1900               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1901             }
       
  1902             
       
  1903             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1904             {
       
  1905         
       
  1906                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  1907                 return return_type_symbol;
       
  1908                 
       
  1909             }
       
  1910             
       
  1911             
       
  1912             ERROR;
       
  1913         }
       
  1914         
       
  1915     }/*function_lint_to_byte*/
       
  1916     break;
       
  1917 
       
  1918 /****
       
  1919  *LINT_TO_USINT
       
  1920  */
       
  1921     case function_lint_to_usint :
       
  1922     {
       
  1923         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1924 
       
  1925         {
       
  1926             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1927             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1928             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1929             symbol_c *IN_type_symbol = NULL;
       
  1930             
       
  1931             /* Get the value from a foo(<param_value>) style call */
       
  1932             if (IN_param_value == NULL)
       
  1933               IN_param_value = function_call_param_iterator.next_nf();
       
  1934             if (IN_param_value != NULL) {
       
  1935               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1936               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1937             }
       
  1938             
       
  1939             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1940             {
       
  1941         
       
  1942                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  1943                 return return_type_symbol;
       
  1944                 
       
  1945             }
       
  1946             
       
  1947             
       
  1948             ERROR;
       
  1949         }
       
  1950         
       
  1951     }/*function_lint_to_usint*/
       
  1952     break;
       
  1953 
       
  1954 /****
       
  1955  *LINT_TO_ULINT
       
  1956  */
       
  1957     case function_lint_to_ulint :
       
  1958     {
       
  1959         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1960 
       
  1961         {
       
  1962             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1963             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  1964             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  1965             symbol_c *IN_type_symbol = NULL;
       
  1966             
       
  1967             /* Get the value from a foo(<param_value>) style call */
       
  1968             if (IN_param_value == NULL)
       
  1969               IN_param_value = function_call_param_iterator.next_nf();
       
  1970             if (IN_param_value != NULL) {
       
  1971               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  1972               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  1973             }
       
  1974             
       
  1975             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  1976             {
       
  1977         
       
  1978                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  1979                 return return_type_symbol;
       
  1980                 
       
  1981             }
       
  1982             
       
  1983             
       
  1984             ERROR;
       
  1985         }
       
  1986         
       
  1987     }/*function_lint_to_ulint*/
       
  1988     break;
       
  1989 
       
  1990 /****
       
  1991  *LINT_TO_BOOL
       
  1992  */
       
  1993     case function_lint_to_bool :
       
  1994     {
       
  1995         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  1996 
       
  1997         {
       
  1998             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  1999             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2000             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2001             symbol_c *IN_type_symbol = NULL;
       
  2002             
       
  2003             /* Get the value from a foo(<param_value>) style call */
       
  2004             if (IN_param_value == NULL)
       
  2005               IN_param_value = function_call_param_iterator.next_nf();
       
  2006             if (IN_param_value != NULL) {
       
  2007               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2008               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2009             }
       
  2010             
       
  2011             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  2012             {
       
  2013         
       
  2014                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  2015                 return return_type_symbol;
       
  2016                 
       
  2017             }
       
  2018             
       
  2019             
       
  2020             ERROR;
       
  2021         }
       
  2022         
       
  2023     }/*function_lint_to_bool*/
       
  2024     break;
       
  2025 
       
  2026 /****
       
  2027  *LINT_TO_TIME
       
  2028  */
       
  2029     case function_lint_to_time :
       
  2030     {
       
  2031         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  2032 
       
  2033         {
       
  2034             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2035             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2036             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2037             symbol_c *IN_type_symbol = NULL;
       
  2038             
       
  2039             /* Get the value from a foo(<param_value>) style call */
       
  2040             if (IN_param_value == NULL)
       
  2041               IN_param_value = function_call_param_iterator.next_nf();
       
  2042             if (IN_param_value != NULL) {
       
  2043               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2044               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2045             }
       
  2046             
       
  2047             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  2048             {
       
  2049         
       
  2050                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  2051                 return return_type_symbol;
       
  2052                 
       
  2053             }
       
  2054             
       
  2055             
       
  2056             ERROR;
       
  2057         }
       
  2058         
       
  2059     }/*function_lint_to_time*/
       
  2060     break;
       
  2061 
       
  2062 /****
       
  2063  *LINT_TO_INT
       
  2064  */
       
  2065     case function_lint_to_int :
       
  2066     {
       
  2067         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
  2068 
       
  2069         {
       
  2070             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2071             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2072             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2073             symbol_c *IN_type_symbol = NULL;
       
  2074             
       
  2075             /* Get the value from a foo(<param_value>) style call */
       
  2076             if (IN_param_value == NULL)
       
  2077               IN_param_value = function_call_param_iterator.next_nf();
       
  2078             if (IN_param_value != NULL) {
       
  2079               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2080               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2081             }
       
  2082             
       
  2083             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
  2084             {
       
  2085         
       
  2086                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  2087                 return return_type_symbol;
       
  2088                 
       
  2089             }
       
  2090             
       
  2091             
       
  2092             ERROR;
       
  2093         }
       
  2094         
       
  2095     }/*function_lint_to_int*/
       
  2096     break;
       
  2097 
       
  2098 /****
       
  2099  *DINT_TO_REAL
       
  2100  */
       
  2101     case function_dint_to_real :
       
  2102     {
       
  2103         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2104 
       
  2105         {
       
  2106             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2107             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2108             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2109             symbol_c *IN_type_symbol = NULL;
       
  2110             
       
  2111             /* Get the value from a foo(<param_value>) style call */
       
  2112             if (IN_param_value == NULL)
       
  2113               IN_param_value = function_call_param_iterator.next_nf();
       
  2114             if (IN_param_value != NULL) {
       
  2115               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2116               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2117             }
       
  2118             
       
  2119             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2120             {
       
  2121         
       
  2122                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  2123                 return return_type_symbol;
       
  2124                 
       
  2125             }
       
  2126             
       
  2127             
       
  2128             ERROR;
       
  2129         }
       
  2130         
       
  2131     }/*function_dint_to_real*/
       
  2132     break;
       
  2133 
       
  2134 /****
       
  2135  *DINT_TO_SINT
       
  2136  */
       
  2137     case function_dint_to_sint :
       
  2138     {
       
  2139         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2140 
       
  2141         {
       
  2142             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2143             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2144             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2145             symbol_c *IN_type_symbol = NULL;
       
  2146             
       
  2147             /* Get the value from a foo(<param_value>) style call */
       
  2148             if (IN_param_value == NULL)
       
  2149               IN_param_value = function_call_param_iterator.next_nf();
       
  2150             if (IN_param_value != NULL) {
       
  2151               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2152               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2153             }
       
  2154             
       
  2155             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2156             {
       
  2157         
       
  2158                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  2159                 return return_type_symbol;
       
  2160                 
       
  2161             }
       
  2162             
       
  2163             
       
  2164             ERROR;
       
  2165         }
       
  2166         
       
  2167     }/*function_dint_to_sint*/
       
  2168     break;
       
  2169 
       
  2170 /****
       
  2171  *DINT_TO_LINT
       
  2172  */
       
  2173     case function_dint_to_lint :
       
  2174     {
       
  2175         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2176 
       
  2177         {
       
  2178             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2179             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2180             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2181             symbol_c *IN_type_symbol = NULL;
       
  2182             
       
  2183             /* Get the value from a foo(<param_value>) style call */
       
  2184             if (IN_param_value == NULL)
       
  2185               IN_param_value = function_call_param_iterator.next_nf();
       
  2186             if (IN_param_value != NULL) {
       
  2187               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2188               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2189             }
       
  2190             
       
  2191             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2192             {
       
  2193         
       
  2194                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  2195                 return return_type_symbol;
       
  2196                 
       
  2197             }
       
  2198             
       
  2199             
       
  2200             ERROR;
       
  2201         }
       
  2202         
       
  2203     }/*function_dint_to_lint*/
       
  2204     break;
       
  2205 
       
  2206 /****
       
  2207  *DINT_TO_DATE
       
  2208  */
       
  2209     case function_dint_to_date :
       
  2210     {
       
  2211         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2212 
       
  2213         {
       
  2214             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2215             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2216             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2217             symbol_c *IN_type_symbol = NULL;
       
  2218             
       
  2219             /* Get the value from a foo(<param_value>) style call */
       
  2220             if (IN_param_value == NULL)
       
  2221               IN_param_value = function_call_param_iterator.next_nf();
       
  2222             if (IN_param_value != NULL) {
       
  2223               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2224               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2225             }
       
  2226             
       
  2227             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2228             {
       
  2229         
       
  2230                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  2231                 return return_type_symbol;
       
  2232                 
       
  2233             }
       
  2234             
       
  2235             
       
  2236             ERROR;
       
  2237         }
       
  2238         
       
  2239     }/*function_dint_to_date*/
       
  2240     break;
       
  2241 
       
  2242 /****
       
  2243  *DINT_TO_DWORD
       
  2244  */
       
  2245     case function_dint_to_dword :
       
  2246     {
       
  2247         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2248 
       
  2249         {
       
  2250             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2251             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2252             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2253             symbol_c *IN_type_symbol = NULL;
       
  2254             
       
  2255             /* Get the value from a foo(<param_value>) style call */
       
  2256             if (IN_param_value == NULL)
       
  2257               IN_param_value = function_call_param_iterator.next_nf();
       
  2258             if (IN_param_value != NULL) {
       
  2259               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2260               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2261             }
       
  2262             
       
  2263             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2264             {
       
  2265         
       
  2266                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  2267                 return return_type_symbol;
       
  2268                 
       
  2269             }
       
  2270             
       
  2271             
       
  2272             ERROR;
       
  2273         }
       
  2274         
       
  2275     }/*function_dint_to_dword*/
       
  2276     break;
       
  2277 
       
  2278 /****
       
  2279  *DINT_TO_DT
       
  2280  */
       
  2281     case function_dint_to_dt :
       
  2282     {
       
  2283         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2284 
       
  2285         {
       
  2286             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2287             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2288             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2289             symbol_c *IN_type_symbol = NULL;
       
  2290             
       
  2291             /* Get the value from a foo(<param_value>) style call */
       
  2292             if (IN_param_value == NULL)
       
  2293               IN_param_value = function_call_param_iterator.next_nf();
       
  2294             if (IN_param_value != NULL) {
       
  2295               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2296               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2297             }
       
  2298             
       
  2299             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2300             {
       
  2301         
       
  2302                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  2303                 return return_type_symbol;
       
  2304                 
       
  2305             }
       
  2306             
       
  2307             
       
  2308             ERROR;
       
  2309         }
       
  2310         
       
  2311     }/*function_dint_to_dt*/
       
  2312     break;
       
  2313 
       
  2314 /****
       
  2315  *DINT_TO_TOD
       
  2316  */
       
  2317     case function_dint_to_tod :
       
  2318     {
       
  2319         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2320 
       
  2321         {
       
  2322             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2323             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2324             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2325             symbol_c *IN_type_symbol = NULL;
       
  2326             
       
  2327             /* Get the value from a foo(<param_value>) style call */
       
  2328             if (IN_param_value == NULL)
       
  2329               IN_param_value = function_call_param_iterator.next_nf();
       
  2330             if (IN_param_value != NULL) {
       
  2331               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2332               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2333             }
       
  2334             
       
  2335             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2336             {
       
  2337         
       
  2338                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  2339                 return return_type_symbol;
       
  2340                 
       
  2341             }
       
  2342             
       
  2343             
       
  2344             ERROR;
       
  2345         }
       
  2346         
       
  2347     }/*function_dint_to_tod*/
       
  2348     break;
       
  2349 
       
  2350 /****
       
  2351  *DINT_TO_UDINT
       
  2352  */
       
  2353     case function_dint_to_udint :
       
  2354     {
       
  2355         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2356 
       
  2357         {
       
  2358             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2359             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2360             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2361             symbol_c *IN_type_symbol = NULL;
       
  2362             
       
  2363             /* Get the value from a foo(<param_value>) style call */
       
  2364             if (IN_param_value == NULL)
       
  2365               IN_param_value = function_call_param_iterator.next_nf();
       
  2366             if (IN_param_value != NULL) {
       
  2367               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2368               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2369             }
       
  2370             
       
  2371             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2372             {
       
  2373         
       
  2374                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  2375                 return return_type_symbol;
       
  2376                 
       
  2377             }
       
  2378             
       
  2379             
       
  2380             ERROR;
       
  2381         }
       
  2382         
       
  2383     }/*function_dint_to_udint*/
       
  2384     break;
       
  2385 
       
  2386 /****
       
  2387  *DINT_TO_WORD
       
  2388  */
       
  2389     case function_dint_to_word :
       
  2390     {
       
  2391         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2392 
       
  2393         {
       
  2394             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2395             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2396             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2397             symbol_c *IN_type_symbol = NULL;
       
  2398             
       
  2399             /* Get the value from a foo(<param_value>) style call */
       
  2400             if (IN_param_value == NULL)
       
  2401               IN_param_value = function_call_param_iterator.next_nf();
       
  2402             if (IN_param_value != NULL) {
       
  2403               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2404               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2405             }
       
  2406             
       
  2407             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2408             {
       
  2409         
       
  2410                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  2411                 return return_type_symbol;
       
  2412                 
       
  2413             }
       
  2414             
       
  2415             
       
  2416             ERROR;
       
  2417         }
       
  2418         
       
  2419     }/*function_dint_to_word*/
       
  2420     break;
       
  2421 
       
  2422 /****
       
  2423  *DINT_TO_STRING
       
  2424  */
       
  2425     case function_dint_to_string :
       
  2426     {
       
  2427         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2428 
       
  2429         {
       
  2430             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2431             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2432             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2433             symbol_c *IN_type_symbol = NULL;
       
  2434             
       
  2435             /* Get the value from a foo(<param_value>) style call */
       
  2436             if (IN_param_value == NULL)
       
  2437               IN_param_value = function_call_param_iterator.next_nf();
       
  2438             if (IN_param_value != NULL) {
       
  2439               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2440               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2441             }
       
  2442             
       
  2443             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2444             {
       
  2445         
       
  2446                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  2447                 return return_type_symbol;
       
  2448                 
       
  2449             }
       
  2450             
       
  2451             
       
  2452             ERROR;
       
  2453         }
       
  2454         
       
  2455     }/*function_dint_to_string*/
       
  2456     break;
       
  2457 
       
  2458 /****
       
  2459  *DINT_TO_LWORD
       
  2460  */
       
  2461     case function_dint_to_lword :
       
  2462     {
       
  2463         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2464 
       
  2465         {
       
  2466             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2467             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2468             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2469             symbol_c *IN_type_symbol = NULL;
       
  2470             
       
  2471             /* Get the value from a foo(<param_value>) style call */
       
  2472             if (IN_param_value == NULL)
       
  2473               IN_param_value = function_call_param_iterator.next_nf();
       
  2474             if (IN_param_value != NULL) {
       
  2475               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2476               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2477             }
       
  2478             
       
  2479             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2480             {
       
  2481         
       
  2482                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  2483                 return return_type_symbol;
       
  2484                 
       
  2485             }
       
  2486             
       
  2487             
       
  2488             ERROR;
       
  2489         }
       
  2490         
       
  2491     }/*function_dint_to_lword*/
       
  2492     break;
       
  2493 
       
  2494 /****
       
  2495  *DINT_TO_UINT
       
  2496  */
       
  2497     case function_dint_to_uint :
       
  2498     {
       
  2499         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2500 
       
  2501         {
       
  2502             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2503             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2504             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2505             symbol_c *IN_type_symbol = NULL;
       
  2506             
       
  2507             /* Get the value from a foo(<param_value>) style call */
       
  2508             if (IN_param_value == NULL)
       
  2509               IN_param_value = function_call_param_iterator.next_nf();
       
  2510             if (IN_param_value != NULL) {
       
  2511               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2512               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2513             }
       
  2514             
       
  2515             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2516             {
       
  2517         
       
  2518                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  2519                 return return_type_symbol;
       
  2520                 
       
  2521             }
       
  2522             
       
  2523             
       
  2524             ERROR;
       
  2525         }
       
  2526         
       
  2527     }/*function_dint_to_uint*/
       
  2528     break;
       
  2529 
       
  2530 /****
       
  2531  *DINT_TO_LREAL
       
  2532  */
       
  2533     case function_dint_to_lreal :
       
  2534     {
       
  2535         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2536 
       
  2537         {
       
  2538             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2539             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2540             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2541             symbol_c *IN_type_symbol = NULL;
       
  2542             
       
  2543             /* Get the value from a foo(<param_value>) style call */
       
  2544             if (IN_param_value == NULL)
       
  2545               IN_param_value = function_call_param_iterator.next_nf();
       
  2546             if (IN_param_value != NULL) {
       
  2547               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2548               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2549             }
       
  2550             
       
  2551             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2552             {
       
  2553         
       
  2554                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  2555                 return return_type_symbol;
       
  2556                 
       
  2557             }
       
  2558             
       
  2559             
       
  2560             ERROR;
       
  2561         }
       
  2562         
       
  2563     }/*function_dint_to_lreal*/
       
  2564     break;
       
  2565 
       
  2566 /****
       
  2567  *DINT_TO_BYTE
       
  2568  */
       
  2569     case function_dint_to_byte :
       
  2570     {
       
  2571         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2572 
       
  2573         {
       
  2574             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2575             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2576             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2577             symbol_c *IN_type_symbol = NULL;
       
  2578             
       
  2579             /* Get the value from a foo(<param_value>) style call */
       
  2580             if (IN_param_value == NULL)
       
  2581               IN_param_value = function_call_param_iterator.next_nf();
       
  2582             if (IN_param_value != NULL) {
       
  2583               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2584               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2585             }
       
  2586             
       
  2587             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2588             {
       
  2589         
       
  2590                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  2591                 return return_type_symbol;
       
  2592                 
       
  2593             }
       
  2594             
       
  2595             
       
  2596             ERROR;
       
  2597         }
       
  2598         
       
  2599     }/*function_dint_to_byte*/
       
  2600     break;
       
  2601 
       
  2602 /****
       
  2603  *DINT_TO_USINT
       
  2604  */
       
  2605     case function_dint_to_usint :
       
  2606     {
       
  2607         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2608 
       
  2609         {
       
  2610             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2611             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2612             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2613             symbol_c *IN_type_symbol = NULL;
       
  2614             
       
  2615             /* Get the value from a foo(<param_value>) style call */
       
  2616             if (IN_param_value == NULL)
       
  2617               IN_param_value = function_call_param_iterator.next_nf();
       
  2618             if (IN_param_value != NULL) {
       
  2619               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2620               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2621             }
       
  2622             
       
  2623             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2624             {
       
  2625         
       
  2626                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  2627                 return return_type_symbol;
       
  2628                 
       
  2629             }
       
  2630             
       
  2631             
       
  2632             ERROR;
       
  2633         }
       
  2634         
       
  2635     }/*function_dint_to_usint*/
       
  2636     break;
       
  2637 
       
  2638 /****
       
  2639  *DINT_TO_ULINT
       
  2640  */
       
  2641     case function_dint_to_ulint :
       
  2642     {
       
  2643         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2644 
       
  2645         {
       
  2646             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2647             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2648             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2649             symbol_c *IN_type_symbol = NULL;
       
  2650             
       
  2651             /* Get the value from a foo(<param_value>) style call */
       
  2652             if (IN_param_value == NULL)
       
  2653               IN_param_value = function_call_param_iterator.next_nf();
       
  2654             if (IN_param_value != NULL) {
       
  2655               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2656               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2657             }
       
  2658             
       
  2659             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2660             {
       
  2661         
       
  2662                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  2663                 return return_type_symbol;
       
  2664                 
       
  2665             }
       
  2666             
       
  2667             
       
  2668             ERROR;
       
  2669         }
       
  2670         
       
  2671     }/*function_dint_to_ulint*/
       
  2672     break;
       
  2673 
       
  2674 /****
       
  2675  *DINT_TO_BOOL
       
  2676  */
       
  2677     case function_dint_to_bool :
       
  2678     {
       
  2679         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2680 
       
  2681         {
       
  2682             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2683             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2684             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2685             symbol_c *IN_type_symbol = NULL;
       
  2686             
       
  2687             /* Get the value from a foo(<param_value>) style call */
       
  2688             if (IN_param_value == NULL)
       
  2689               IN_param_value = function_call_param_iterator.next_nf();
       
  2690             if (IN_param_value != NULL) {
       
  2691               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2692               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2693             }
       
  2694             
       
  2695             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2696             {
       
  2697         
       
  2698                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  2699                 return return_type_symbol;
       
  2700                 
       
  2701             }
       
  2702             
       
  2703             
       
  2704             ERROR;
       
  2705         }
       
  2706         
       
  2707     }/*function_dint_to_bool*/
       
  2708     break;
       
  2709 
       
  2710 /****
       
  2711  *DINT_TO_TIME
       
  2712  */
       
  2713     case function_dint_to_time :
       
  2714     {
       
  2715         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2716 
       
  2717         {
       
  2718             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2719             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2720             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2721             symbol_c *IN_type_symbol = NULL;
       
  2722             
       
  2723             /* Get the value from a foo(<param_value>) style call */
       
  2724             if (IN_param_value == NULL)
       
  2725               IN_param_value = function_call_param_iterator.next_nf();
       
  2726             if (IN_param_value != NULL) {
       
  2727               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2728               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2729             }
       
  2730             
       
  2731             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2732             {
       
  2733         
       
  2734                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  2735                 return return_type_symbol;
       
  2736                 
       
  2737             }
       
  2738             
       
  2739             
       
  2740             ERROR;
       
  2741         }
       
  2742         
       
  2743     }/*function_dint_to_time*/
       
  2744     break;
       
  2745 
       
  2746 /****
       
  2747  *DINT_TO_INT
       
  2748  */
       
  2749     case function_dint_to_int :
       
  2750     {
       
  2751         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
  2752 
       
  2753         {
       
  2754             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2755             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2756             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2757             symbol_c *IN_type_symbol = NULL;
       
  2758             
       
  2759             /* Get the value from a foo(<param_value>) style call */
       
  2760             if (IN_param_value == NULL)
       
  2761               IN_param_value = function_call_param_iterator.next_nf();
       
  2762             if (IN_param_value != NULL) {
       
  2763               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2764               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2765             }
       
  2766             
       
  2767             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
  2768             {
       
  2769         
       
  2770                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  2771                 return return_type_symbol;
       
  2772                 
       
  2773             }
       
  2774             
       
  2775             
       
  2776             ERROR;
       
  2777         }
       
  2778         
       
  2779     }/*function_dint_to_int*/
       
  2780     break;
       
  2781 
       
  2782 /****
       
  2783  *DATE_TO_REAL
       
  2784  */
       
  2785     case function_date_to_real :
       
  2786     {
       
  2787         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2788 
       
  2789         {
       
  2790             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2791             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2792             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2793             symbol_c *IN_type_symbol = NULL;
       
  2794             
       
  2795             /* Get the value from a foo(<param_value>) style call */
       
  2796             if (IN_param_value == NULL)
       
  2797               IN_param_value = function_call_param_iterator.next_nf();
       
  2798             if (IN_param_value != NULL) {
       
  2799               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2800               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2801             }
       
  2802             
       
  2803             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2804             {
       
  2805         
       
  2806                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  2807                 return return_type_symbol;
       
  2808                 
       
  2809             }
       
  2810             
       
  2811             
       
  2812             ERROR;
       
  2813         }
       
  2814         
       
  2815     }/*function_date_to_real*/
       
  2816     break;
       
  2817 
       
  2818 /****
       
  2819  *DATE_TO_SINT
       
  2820  */
       
  2821     case function_date_to_sint :
       
  2822     {
       
  2823         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2824 
       
  2825         {
       
  2826             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2827             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2828             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2829             symbol_c *IN_type_symbol = NULL;
       
  2830             
       
  2831             /* Get the value from a foo(<param_value>) style call */
       
  2832             if (IN_param_value == NULL)
       
  2833               IN_param_value = function_call_param_iterator.next_nf();
       
  2834             if (IN_param_value != NULL) {
       
  2835               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2836               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2837             }
       
  2838             
       
  2839             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2840             {
       
  2841         
       
  2842                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  2843                 return return_type_symbol;
       
  2844                 
       
  2845             }
       
  2846             
       
  2847             
       
  2848             ERROR;
       
  2849         }
       
  2850         
       
  2851     }/*function_date_to_sint*/
       
  2852     break;
       
  2853 
       
  2854 /****
       
  2855  *DATE_TO_LINT
       
  2856  */
       
  2857     case function_date_to_lint :
       
  2858     {
       
  2859         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2860 
       
  2861         {
       
  2862             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2863             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2864             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2865             symbol_c *IN_type_symbol = NULL;
       
  2866             
       
  2867             /* Get the value from a foo(<param_value>) style call */
       
  2868             if (IN_param_value == NULL)
       
  2869               IN_param_value = function_call_param_iterator.next_nf();
       
  2870             if (IN_param_value != NULL) {
       
  2871               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2872               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2873             }
       
  2874             
       
  2875             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2876             {
       
  2877         
       
  2878                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  2879                 return return_type_symbol;
       
  2880                 
       
  2881             }
       
  2882             
       
  2883             
       
  2884             ERROR;
       
  2885         }
       
  2886         
       
  2887     }/*function_date_to_lint*/
       
  2888     break;
       
  2889 
       
  2890 /****
       
  2891  *DATE_TO_DINT
       
  2892  */
       
  2893     case function_date_to_dint :
       
  2894     {
       
  2895         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2896 
       
  2897         {
       
  2898             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2899             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2900             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2901             symbol_c *IN_type_symbol = NULL;
       
  2902             
       
  2903             /* Get the value from a foo(<param_value>) style call */
       
  2904             if (IN_param_value == NULL)
       
  2905               IN_param_value = function_call_param_iterator.next_nf();
       
  2906             if (IN_param_value != NULL) {
       
  2907               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2908               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2909             }
       
  2910             
       
  2911             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2912             {
       
  2913         
       
  2914                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  2915                 return return_type_symbol;
       
  2916                 
       
  2917             }
       
  2918             
       
  2919             
       
  2920             ERROR;
       
  2921         }
       
  2922         
       
  2923     }/*function_date_to_dint*/
       
  2924     break;
       
  2925 
       
  2926 /****
       
  2927  *DATE_TO_DWORD
       
  2928  */
       
  2929     case function_date_to_dword :
       
  2930     {
       
  2931         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2932 
       
  2933         {
       
  2934             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2935             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2936             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2937             symbol_c *IN_type_symbol = NULL;
       
  2938             
       
  2939             /* Get the value from a foo(<param_value>) style call */
       
  2940             if (IN_param_value == NULL)
       
  2941               IN_param_value = function_call_param_iterator.next_nf();
       
  2942             if (IN_param_value != NULL) {
       
  2943               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2944               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2945             }
       
  2946             
       
  2947             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2948             {
       
  2949         
       
  2950                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  2951                 return return_type_symbol;
       
  2952                 
       
  2953             }
       
  2954             
       
  2955             
       
  2956             ERROR;
       
  2957         }
       
  2958         
       
  2959     }/*function_date_to_dword*/
       
  2960     break;
       
  2961 
       
  2962 /****
       
  2963  *DATE_TO_UDINT
       
  2964  */
       
  2965     case function_date_to_udint :
       
  2966     {
       
  2967         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  2968 
       
  2969         {
       
  2970             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  2971             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  2972             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  2973             symbol_c *IN_type_symbol = NULL;
       
  2974             
       
  2975             /* Get the value from a foo(<param_value>) style call */
       
  2976             if (IN_param_value == NULL)
       
  2977               IN_param_value = function_call_param_iterator.next_nf();
       
  2978             if (IN_param_value != NULL) {
       
  2979               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  2980               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  2981             }
       
  2982             
       
  2983             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  2984             {
       
  2985         
       
  2986                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  2987                 return return_type_symbol;
       
  2988                 
       
  2989             }
       
  2990             
       
  2991             
       
  2992             ERROR;
       
  2993         }
       
  2994         
       
  2995     }/*function_date_to_udint*/
       
  2996     break;
       
  2997 
       
  2998 /****
       
  2999  *DATE_TO_WORD
       
  3000  */
       
  3001     case function_date_to_word :
       
  3002     {
       
  3003         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3004 
       
  3005         {
       
  3006             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3007             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3008             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3009             symbol_c *IN_type_symbol = NULL;
       
  3010             
       
  3011             /* Get the value from a foo(<param_value>) style call */
       
  3012             if (IN_param_value == NULL)
       
  3013               IN_param_value = function_call_param_iterator.next_nf();
       
  3014             if (IN_param_value != NULL) {
       
  3015               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3016               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3017             }
       
  3018             
       
  3019             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3020             {
       
  3021         
       
  3022                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  3023                 return return_type_symbol;
       
  3024                 
       
  3025             }
       
  3026             
       
  3027             
       
  3028             ERROR;
       
  3029         }
       
  3030         
       
  3031     }/*function_date_to_word*/
       
  3032     break;
       
  3033 
       
  3034 /****
       
  3035  *DATE_TO_STRING
       
  3036  */
       
  3037     case function_date_to_string :
       
  3038     {
       
  3039         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3040 
       
  3041         {
       
  3042             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3043             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3044             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3045             symbol_c *IN_type_symbol = NULL;
       
  3046             
       
  3047             /* Get the value from a foo(<param_value>) style call */
       
  3048             if (IN_param_value == NULL)
       
  3049               IN_param_value = function_call_param_iterator.next_nf();
       
  3050             if (IN_param_value != NULL) {
       
  3051               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3052               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3053             }
       
  3054             
       
  3055             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3056             {
       
  3057         
       
  3058                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  3059                 return return_type_symbol;
       
  3060                 
       
  3061             }
       
  3062             
       
  3063             
       
  3064             ERROR;
       
  3065         }
       
  3066         
       
  3067     }/*function_date_to_string*/
       
  3068     break;
       
  3069 
       
  3070 /****
       
  3071  *DATE_TO_LWORD
       
  3072  */
       
  3073     case function_date_to_lword :
       
  3074     {
       
  3075         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3076 
       
  3077         {
       
  3078             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3079             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3080             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3081             symbol_c *IN_type_symbol = NULL;
       
  3082             
       
  3083             /* Get the value from a foo(<param_value>) style call */
       
  3084             if (IN_param_value == NULL)
       
  3085               IN_param_value = function_call_param_iterator.next_nf();
       
  3086             if (IN_param_value != NULL) {
       
  3087               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3088               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3089             }
       
  3090             
       
  3091             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3092             {
       
  3093         
       
  3094                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  3095                 return return_type_symbol;
       
  3096                 
       
  3097             }
       
  3098             
       
  3099             
       
  3100             ERROR;
       
  3101         }
       
  3102         
       
  3103     }/*function_date_to_lword*/
       
  3104     break;
       
  3105 
       
  3106 /****
       
  3107  *DATE_TO_UINT
       
  3108  */
       
  3109     case function_date_to_uint :
       
  3110     {
       
  3111         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3112 
       
  3113         {
       
  3114             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3115             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3116             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3117             symbol_c *IN_type_symbol = NULL;
       
  3118             
       
  3119             /* Get the value from a foo(<param_value>) style call */
       
  3120             if (IN_param_value == NULL)
       
  3121               IN_param_value = function_call_param_iterator.next_nf();
       
  3122             if (IN_param_value != NULL) {
       
  3123               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3124               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3125             }
       
  3126             
       
  3127             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3128             {
       
  3129         
       
  3130                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  3131                 return return_type_symbol;
       
  3132                 
       
  3133             }
       
  3134             
       
  3135             
       
  3136             ERROR;
       
  3137         }
       
  3138         
       
  3139     }/*function_date_to_uint*/
       
  3140     break;
       
  3141 
       
  3142 /****
       
  3143  *DATE_TO_LREAL
       
  3144  */
       
  3145     case function_date_to_lreal :
       
  3146     {
       
  3147         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3148 
       
  3149         {
       
  3150             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3151             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3152             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3153             symbol_c *IN_type_symbol = NULL;
       
  3154             
       
  3155             /* Get the value from a foo(<param_value>) style call */
       
  3156             if (IN_param_value == NULL)
       
  3157               IN_param_value = function_call_param_iterator.next_nf();
       
  3158             if (IN_param_value != NULL) {
       
  3159               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3160               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3161             }
       
  3162             
       
  3163             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3164             {
       
  3165         
       
  3166                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  3167                 return return_type_symbol;
       
  3168                 
       
  3169             }
       
  3170             
       
  3171             
       
  3172             ERROR;
       
  3173         }
       
  3174         
       
  3175     }/*function_date_to_lreal*/
       
  3176     break;
       
  3177 
       
  3178 /****
       
  3179  *DATE_TO_BYTE
       
  3180  */
       
  3181     case function_date_to_byte :
       
  3182     {
       
  3183         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3184 
       
  3185         {
       
  3186             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3187             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3188             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3189             symbol_c *IN_type_symbol = NULL;
       
  3190             
       
  3191             /* Get the value from a foo(<param_value>) style call */
       
  3192             if (IN_param_value == NULL)
       
  3193               IN_param_value = function_call_param_iterator.next_nf();
       
  3194             if (IN_param_value != NULL) {
       
  3195               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3196               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3197             }
       
  3198             
       
  3199             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3200             {
       
  3201         
       
  3202                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  3203                 return return_type_symbol;
       
  3204                 
       
  3205             }
       
  3206             
       
  3207             
       
  3208             ERROR;
       
  3209         }
       
  3210         
       
  3211     }/*function_date_to_byte*/
       
  3212     break;
       
  3213 
       
  3214 /****
       
  3215  *DATE_TO_USINT
       
  3216  */
       
  3217     case function_date_to_usint :
       
  3218     {
       
  3219         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3220 
       
  3221         {
       
  3222             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3223             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3224             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3225             symbol_c *IN_type_symbol = NULL;
       
  3226             
       
  3227             /* Get the value from a foo(<param_value>) style call */
       
  3228             if (IN_param_value == NULL)
       
  3229               IN_param_value = function_call_param_iterator.next_nf();
       
  3230             if (IN_param_value != NULL) {
       
  3231               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3232               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3233             }
       
  3234             
       
  3235             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3236             {
       
  3237         
       
  3238                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  3239                 return return_type_symbol;
       
  3240                 
       
  3241             }
       
  3242             
       
  3243             
       
  3244             ERROR;
       
  3245         }
       
  3246         
       
  3247     }/*function_date_to_usint*/
       
  3248     break;
       
  3249 
       
  3250 /****
       
  3251  *DATE_TO_ULINT
       
  3252  */
       
  3253     case function_date_to_ulint :
       
  3254     {
       
  3255         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3256 
       
  3257         {
       
  3258             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3259             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3260             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3261             symbol_c *IN_type_symbol = NULL;
       
  3262             
       
  3263             /* Get the value from a foo(<param_value>) style call */
       
  3264             if (IN_param_value == NULL)
       
  3265               IN_param_value = function_call_param_iterator.next_nf();
       
  3266             if (IN_param_value != NULL) {
       
  3267               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3268               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3269             }
       
  3270             
       
  3271             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3272             {
       
  3273         
       
  3274                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  3275                 return return_type_symbol;
       
  3276                 
       
  3277             }
       
  3278             
       
  3279             
       
  3280             ERROR;
       
  3281         }
       
  3282         
       
  3283     }/*function_date_to_ulint*/
       
  3284     break;
       
  3285 
       
  3286 /****
       
  3287  *DATE_TO_INT
       
  3288  */
       
  3289     case function_date_to_int :
       
  3290     {
       
  3291         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
  3292 
       
  3293         {
       
  3294             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3295             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3296             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3297             symbol_c *IN_type_symbol = NULL;
       
  3298             
       
  3299             /* Get the value from a foo(<param_value>) style call */
       
  3300             if (IN_param_value == NULL)
       
  3301               IN_param_value = function_call_param_iterator.next_nf();
       
  3302             if (IN_param_value != NULL) {
       
  3303               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3304               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3305             }
       
  3306             
       
  3307             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
  3308             {
       
  3309         
       
  3310                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  3311                 return return_type_symbol;
       
  3312                 
       
  3313             }
       
  3314             
       
  3315             
       
  3316             ERROR;
       
  3317         }
       
  3318         
       
  3319     }/*function_date_to_int*/
       
  3320     break;
       
  3321 
       
  3322 /****
       
  3323  *DWORD_TO_REAL
       
  3324  */
       
  3325     case function_dword_to_real :
       
  3326     {
       
  3327         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3328 
       
  3329         {
       
  3330             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3331             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3332             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3333             symbol_c *IN_type_symbol = NULL;
       
  3334             
       
  3335             /* Get the value from a foo(<param_value>) style call */
       
  3336             if (IN_param_value == NULL)
       
  3337               IN_param_value = function_call_param_iterator.next_nf();
       
  3338             if (IN_param_value != NULL) {
       
  3339               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3340               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3341             }
       
  3342             
       
  3343             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3344             {
       
  3345         
       
  3346                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  3347                 return return_type_symbol;
       
  3348                 
       
  3349             }
       
  3350             
       
  3351             
       
  3352             ERROR;
       
  3353         }
       
  3354         
       
  3355     }/*function_dword_to_real*/
       
  3356     break;
       
  3357 
       
  3358 /****
       
  3359  *DWORD_TO_SINT
       
  3360  */
       
  3361     case function_dword_to_sint :
       
  3362     {
       
  3363         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3364 
       
  3365         {
       
  3366             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3367             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3368             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3369             symbol_c *IN_type_symbol = NULL;
       
  3370             
       
  3371             /* Get the value from a foo(<param_value>) style call */
       
  3372             if (IN_param_value == NULL)
       
  3373               IN_param_value = function_call_param_iterator.next_nf();
       
  3374             if (IN_param_value != NULL) {
       
  3375               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3376               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3377             }
       
  3378             
       
  3379             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3380             {
       
  3381         
       
  3382                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  3383                 return return_type_symbol;
       
  3384                 
       
  3385             }
       
  3386             
       
  3387             
       
  3388             ERROR;
       
  3389         }
       
  3390         
       
  3391     }/*function_dword_to_sint*/
       
  3392     break;
       
  3393 
       
  3394 /****
       
  3395  *DWORD_TO_LINT
       
  3396  */
       
  3397     case function_dword_to_lint :
       
  3398     {
       
  3399         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3400 
       
  3401         {
       
  3402             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3403             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3404             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3405             symbol_c *IN_type_symbol = NULL;
       
  3406             
       
  3407             /* Get the value from a foo(<param_value>) style call */
       
  3408             if (IN_param_value == NULL)
       
  3409               IN_param_value = function_call_param_iterator.next_nf();
       
  3410             if (IN_param_value != NULL) {
       
  3411               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3412               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3413             }
       
  3414             
       
  3415             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3416             {
       
  3417         
       
  3418                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  3419                 return return_type_symbol;
       
  3420                 
       
  3421             }
       
  3422             
       
  3423             
       
  3424             ERROR;
       
  3425         }
       
  3426         
       
  3427     }/*function_dword_to_lint*/
       
  3428     break;
       
  3429 
       
  3430 /****
       
  3431  *DWORD_TO_DINT
       
  3432  */
       
  3433     case function_dword_to_dint :
       
  3434     {
       
  3435         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3436 
       
  3437         {
       
  3438             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3439             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3440             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3441             symbol_c *IN_type_symbol = NULL;
       
  3442             
       
  3443             /* Get the value from a foo(<param_value>) style call */
       
  3444             if (IN_param_value == NULL)
       
  3445               IN_param_value = function_call_param_iterator.next_nf();
       
  3446             if (IN_param_value != NULL) {
       
  3447               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3448               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3449             }
       
  3450             
       
  3451             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3452             {
       
  3453         
       
  3454                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  3455                 return return_type_symbol;
       
  3456                 
       
  3457             }
       
  3458             
       
  3459             
       
  3460             ERROR;
       
  3461         }
       
  3462         
       
  3463     }/*function_dword_to_dint*/
       
  3464     break;
       
  3465 
       
  3466 /****
       
  3467  *DWORD_TO_DATE
       
  3468  */
       
  3469     case function_dword_to_date :
       
  3470     {
       
  3471         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3472 
       
  3473         {
       
  3474             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3475             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3476             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3477             symbol_c *IN_type_symbol = NULL;
       
  3478             
       
  3479             /* Get the value from a foo(<param_value>) style call */
       
  3480             if (IN_param_value == NULL)
       
  3481               IN_param_value = function_call_param_iterator.next_nf();
       
  3482             if (IN_param_value != NULL) {
       
  3483               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3484               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3485             }
       
  3486             
       
  3487             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3488             {
       
  3489         
       
  3490                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  3491                 return return_type_symbol;
       
  3492                 
       
  3493             }
       
  3494             
       
  3495             
       
  3496             ERROR;
       
  3497         }
       
  3498         
       
  3499     }/*function_dword_to_date*/
       
  3500     break;
       
  3501 
       
  3502 /****
       
  3503  *DWORD_TO_DT
       
  3504  */
       
  3505     case function_dword_to_dt :
       
  3506     {
       
  3507         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3508 
       
  3509         {
       
  3510             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3511             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3512             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3513             symbol_c *IN_type_symbol = NULL;
       
  3514             
       
  3515             /* Get the value from a foo(<param_value>) style call */
       
  3516             if (IN_param_value == NULL)
       
  3517               IN_param_value = function_call_param_iterator.next_nf();
       
  3518             if (IN_param_value != NULL) {
       
  3519               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3520               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3521             }
       
  3522             
       
  3523             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3524             {
       
  3525         
       
  3526                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  3527                 return return_type_symbol;
       
  3528                 
       
  3529             }
       
  3530             
       
  3531             
       
  3532             ERROR;
       
  3533         }
       
  3534         
       
  3535     }/*function_dword_to_dt*/
       
  3536     break;
       
  3537 
       
  3538 /****
       
  3539  *DWORD_TO_TOD
       
  3540  */
       
  3541     case function_dword_to_tod :
       
  3542     {
       
  3543         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3544 
       
  3545         {
       
  3546             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3547             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3548             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3549             symbol_c *IN_type_symbol = NULL;
       
  3550             
       
  3551             /* Get the value from a foo(<param_value>) style call */
       
  3552             if (IN_param_value == NULL)
       
  3553               IN_param_value = function_call_param_iterator.next_nf();
       
  3554             if (IN_param_value != NULL) {
       
  3555               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3556               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3557             }
       
  3558             
       
  3559             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3560             {
       
  3561         
       
  3562                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  3563                 return return_type_symbol;
       
  3564                 
       
  3565             }
       
  3566             
       
  3567             
       
  3568             ERROR;
       
  3569         }
       
  3570         
       
  3571     }/*function_dword_to_tod*/
       
  3572     break;
       
  3573 
       
  3574 /****
       
  3575  *DWORD_TO_UDINT
       
  3576  */
       
  3577     case function_dword_to_udint :
       
  3578     {
       
  3579         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3580 
       
  3581         {
       
  3582             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3583             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3584             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3585             symbol_c *IN_type_symbol = NULL;
       
  3586             
       
  3587             /* Get the value from a foo(<param_value>) style call */
       
  3588             if (IN_param_value == NULL)
       
  3589               IN_param_value = function_call_param_iterator.next_nf();
       
  3590             if (IN_param_value != NULL) {
       
  3591               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3592               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3593             }
       
  3594             
       
  3595             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3596             {
       
  3597         
       
  3598                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  3599                 return return_type_symbol;
       
  3600                 
       
  3601             }
       
  3602             
       
  3603             
       
  3604             ERROR;
       
  3605         }
       
  3606         
       
  3607     }/*function_dword_to_udint*/
       
  3608     break;
       
  3609 
       
  3610 /****
       
  3611  *DWORD_TO_WORD
       
  3612  */
       
  3613     case function_dword_to_word :
       
  3614     {
       
  3615         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3616 
       
  3617         {
       
  3618             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3619             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3620             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3621             symbol_c *IN_type_symbol = NULL;
       
  3622             
       
  3623             /* Get the value from a foo(<param_value>) style call */
       
  3624             if (IN_param_value == NULL)
       
  3625               IN_param_value = function_call_param_iterator.next_nf();
       
  3626             if (IN_param_value != NULL) {
       
  3627               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3628               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3629             }
       
  3630             
       
  3631             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3632             {
       
  3633         
       
  3634                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  3635                 return return_type_symbol;
       
  3636                 
       
  3637             }
       
  3638             
       
  3639             
       
  3640             ERROR;
       
  3641         }
       
  3642         
       
  3643     }/*function_dword_to_word*/
       
  3644     break;
       
  3645 
       
  3646 /****
       
  3647  *DWORD_TO_STRING
       
  3648  */
       
  3649     case function_dword_to_string :
       
  3650     {
       
  3651         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3652 
       
  3653         {
       
  3654             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3655             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3656             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3657             symbol_c *IN_type_symbol = NULL;
       
  3658             
       
  3659             /* Get the value from a foo(<param_value>) style call */
       
  3660             if (IN_param_value == NULL)
       
  3661               IN_param_value = function_call_param_iterator.next_nf();
       
  3662             if (IN_param_value != NULL) {
       
  3663               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3664               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3665             }
       
  3666             
       
  3667             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3668             {
       
  3669         
       
  3670                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  3671                 return return_type_symbol;
       
  3672                 
       
  3673             }
       
  3674             
       
  3675             
       
  3676             ERROR;
       
  3677         }
       
  3678         
       
  3679     }/*function_dword_to_string*/
       
  3680     break;
       
  3681 
       
  3682 /****
       
  3683  *DWORD_TO_LWORD
       
  3684  */
       
  3685     case function_dword_to_lword :
       
  3686     {
       
  3687         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3688 
       
  3689         {
       
  3690             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3691             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3692             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3693             symbol_c *IN_type_symbol = NULL;
       
  3694             
       
  3695             /* Get the value from a foo(<param_value>) style call */
       
  3696             if (IN_param_value == NULL)
       
  3697               IN_param_value = function_call_param_iterator.next_nf();
       
  3698             if (IN_param_value != NULL) {
       
  3699               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3700               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3701             }
       
  3702             
       
  3703             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3704             {
       
  3705         
       
  3706                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  3707                 return return_type_symbol;
       
  3708                 
       
  3709             }
       
  3710             
       
  3711             
       
  3712             ERROR;
       
  3713         }
       
  3714         
       
  3715     }/*function_dword_to_lword*/
       
  3716     break;
       
  3717 
       
  3718 /****
       
  3719  *DWORD_TO_UINT
       
  3720  */
       
  3721     case function_dword_to_uint :
       
  3722     {
       
  3723         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3724 
       
  3725         {
       
  3726             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3727             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3728             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3729             symbol_c *IN_type_symbol = NULL;
       
  3730             
       
  3731             /* Get the value from a foo(<param_value>) style call */
       
  3732             if (IN_param_value == NULL)
       
  3733               IN_param_value = function_call_param_iterator.next_nf();
       
  3734             if (IN_param_value != NULL) {
       
  3735               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3736               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3737             }
       
  3738             
       
  3739             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3740             {
       
  3741         
       
  3742                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  3743                 return return_type_symbol;
       
  3744                 
       
  3745             }
       
  3746             
       
  3747             
       
  3748             ERROR;
       
  3749         }
       
  3750         
       
  3751     }/*function_dword_to_uint*/
       
  3752     break;
       
  3753 
       
  3754 /****
       
  3755  *DWORD_TO_LREAL
       
  3756  */
       
  3757     case function_dword_to_lreal :
       
  3758     {
       
  3759         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3760 
       
  3761         {
       
  3762             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3763             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3764             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3765             symbol_c *IN_type_symbol = NULL;
       
  3766             
       
  3767             /* Get the value from a foo(<param_value>) style call */
       
  3768             if (IN_param_value == NULL)
       
  3769               IN_param_value = function_call_param_iterator.next_nf();
       
  3770             if (IN_param_value != NULL) {
       
  3771               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3772               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3773             }
       
  3774             
       
  3775             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3776             {
       
  3777         
       
  3778                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  3779                 return return_type_symbol;
       
  3780                 
       
  3781             }
       
  3782             
       
  3783             
       
  3784             ERROR;
       
  3785         }
       
  3786         
       
  3787     }/*function_dword_to_lreal*/
       
  3788     break;
       
  3789 
       
  3790 /****
       
  3791  *DWORD_TO_BYTE
       
  3792  */
       
  3793     case function_dword_to_byte :
       
  3794     {
       
  3795         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3796 
       
  3797         {
       
  3798             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3799             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3800             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3801             symbol_c *IN_type_symbol = NULL;
       
  3802             
       
  3803             /* Get the value from a foo(<param_value>) style call */
       
  3804             if (IN_param_value == NULL)
       
  3805               IN_param_value = function_call_param_iterator.next_nf();
       
  3806             if (IN_param_value != NULL) {
       
  3807               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3808               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3809             }
       
  3810             
       
  3811             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3812             {
       
  3813         
       
  3814                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  3815                 return return_type_symbol;
       
  3816                 
       
  3817             }
       
  3818             
       
  3819             
       
  3820             ERROR;
       
  3821         }
       
  3822         
       
  3823     }/*function_dword_to_byte*/
       
  3824     break;
       
  3825 
       
  3826 /****
       
  3827  *DWORD_TO_USINT
       
  3828  */
       
  3829     case function_dword_to_usint :
       
  3830     {
       
  3831         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3832 
       
  3833         {
       
  3834             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3835             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3836             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3837             symbol_c *IN_type_symbol = NULL;
       
  3838             
       
  3839             /* Get the value from a foo(<param_value>) style call */
       
  3840             if (IN_param_value == NULL)
       
  3841               IN_param_value = function_call_param_iterator.next_nf();
       
  3842             if (IN_param_value != NULL) {
       
  3843               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3844               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3845             }
       
  3846             
       
  3847             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3848             {
       
  3849         
       
  3850                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  3851                 return return_type_symbol;
       
  3852                 
       
  3853             }
       
  3854             
       
  3855             
       
  3856             ERROR;
       
  3857         }
       
  3858         
       
  3859     }/*function_dword_to_usint*/
       
  3860     break;
       
  3861 
       
  3862 /****
       
  3863  *DWORD_TO_ULINT
       
  3864  */
       
  3865     case function_dword_to_ulint :
       
  3866     {
       
  3867         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3868 
       
  3869         {
       
  3870             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3871             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3872             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3873             symbol_c *IN_type_symbol = NULL;
       
  3874             
       
  3875             /* Get the value from a foo(<param_value>) style call */
       
  3876             if (IN_param_value == NULL)
       
  3877               IN_param_value = function_call_param_iterator.next_nf();
       
  3878             if (IN_param_value != NULL) {
       
  3879               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3880               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3881             }
       
  3882             
       
  3883             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3884             {
       
  3885         
       
  3886                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  3887                 return return_type_symbol;
       
  3888                 
       
  3889             }
       
  3890             
       
  3891             
       
  3892             ERROR;
       
  3893         }
       
  3894         
       
  3895     }/*function_dword_to_ulint*/
       
  3896     break;
       
  3897 
       
  3898 /****
       
  3899  *DWORD_TO_BOOL
       
  3900  */
       
  3901     case function_dword_to_bool :
       
  3902     {
       
  3903         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3904 
       
  3905         {
       
  3906             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3907             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3908             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3909             symbol_c *IN_type_symbol = NULL;
       
  3910             
       
  3911             /* Get the value from a foo(<param_value>) style call */
       
  3912             if (IN_param_value == NULL)
       
  3913               IN_param_value = function_call_param_iterator.next_nf();
       
  3914             if (IN_param_value != NULL) {
       
  3915               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3916               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3917             }
       
  3918             
       
  3919             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3920             {
       
  3921         
       
  3922                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  3923                 return return_type_symbol;
       
  3924                 
       
  3925             }
       
  3926             
       
  3927             
       
  3928             ERROR;
       
  3929         }
       
  3930         
       
  3931     }/*function_dword_to_bool*/
       
  3932     break;
       
  3933 
       
  3934 /****
       
  3935  *DWORD_TO_TIME
       
  3936  */
       
  3937     case function_dword_to_time :
       
  3938     {
       
  3939         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3940 
       
  3941         {
       
  3942             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3943             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3944             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3945             symbol_c *IN_type_symbol = NULL;
       
  3946             
       
  3947             /* Get the value from a foo(<param_value>) style call */
       
  3948             if (IN_param_value == NULL)
       
  3949               IN_param_value = function_call_param_iterator.next_nf();
       
  3950             if (IN_param_value != NULL) {
       
  3951               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3952               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3953             }
       
  3954             
       
  3955             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3956             {
       
  3957         
       
  3958                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  3959                 return return_type_symbol;
       
  3960                 
       
  3961             }
       
  3962             
       
  3963             
       
  3964             ERROR;
       
  3965         }
       
  3966         
       
  3967     }/*function_dword_to_time*/
       
  3968     break;
       
  3969 
       
  3970 /****
       
  3971  *DWORD_TO_INT
       
  3972  */
       
  3973     case function_dword_to_int :
       
  3974     {
       
  3975         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
  3976 
       
  3977         {
       
  3978             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  3979             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  3980             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  3981             symbol_c *IN_type_symbol = NULL;
       
  3982             
       
  3983             /* Get the value from a foo(<param_value>) style call */
       
  3984             if (IN_param_value == NULL)
       
  3985               IN_param_value = function_call_param_iterator.next_nf();
       
  3986             if (IN_param_value != NULL) {
       
  3987               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  3988               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  3989             }
       
  3990             
       
  3991             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
  3992             {
       
  3993         
       
  3994                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  3995                 return return_type_symbol;
       
  3996                 
       
  3997             }
       
  3998             
       
  3999             
       
  4000             ERROR;
       
  4001         }
       
  4002         
       
  4003     }/*function_dword_to_int*/
       
  4004     break;
       
  4005 
       
  4006 /****
       
  4007  *DT_TO_REAL
       
  4008  */
       
  4009     case function_dt_to_real :
       
  4010     {
       
  4011         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4012 
       
  4013         {
       
  4014             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4015             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4016             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4017             symbol_c *IN_type_symbol = NULL;
       
  4018             
       
  4019             /* Get the value from a foo(<param_value>) style call */
       
  4020             if (IN_param_value == NULL)
       
  4021               IN_param_value = function_call_param_iterator.next_nf();
       
  4022             if (IN_param_value != NULL) {
       
  4023               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4024               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4025             }
       
  4026             
       
  4027             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4028             {
       
  4029         
       
  4030                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  4031                 return return_type_symbol;
       
  4032                 
       
  4033             }
       
  4034             
       
  4035             
       
  4036             ERROR;
       
  4037         }
       
  4038         
       
  4039     }/*function_dt_to_real*/
       
  4040     break;
       
  4041 
       
  4042 /****
       
  4043  *DT_TO_SINT
       
  4044  */
       
  4045     case function_dt_to_sint :
       
  4046     {
       
  4047         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4048 
       
  4049         {
       
  4050             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4051             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4052             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4053             symbol_c *IN_type_symbol = NULL;
       
  4054             
       
  4055             /* Get the value from a foo(<param_value>) style call */
       
  4056             if (IN_param_value == NULL)
       
  4057               IN_param_value = function_call_param_iterator.next_nf();
       
  4058             if (IN_param_value != NULL) {
       
  4059               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4060               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4061             }
       
  4062             
       
  4063             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4064             {
       
  4065         
       
  4066                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  4067                 return return_type_symbol;
       
  4068                 
       
  4069             }
       
  4070             
       
  4071             
       
  4072             ERROR;
       
  4073         }
       
  4074         
       
  4075     }/*function_dt_to_sint*/
       
  4076     break;
       
  4077 
       
  4078 /****
       
  4079  *DT_TO_LINT
       
  4080  */
       
  4081     case function_dt_to_lint :
       
  4082     {
       
  4083         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4084 
       
  4085         {
       
  4086             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4087             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4088             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4089             symbol_c *IN_type_symbol = NULL;
       
  4090             
       
  4091             /* Get the value from a foo(<param_value>) style call */
       
  4092             if (IN_param_value == NULL)
       
  4093               IN_param_value = function_call_param_iterator.next_nf();
       
  4094             if (IN_param_value != NULL) {
       
  4095               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4096               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4097             }
       
  4098             
       
  4099             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4100             {
       
  4101         
       
  4102                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  4103                 return return_type_symbol;
       
  4104                 
       
  4105             }
       
  4106             
       
  4107             
       
  4108             ERROR;
       
  4109         }
       
  4110         
       
  4111     }/*function_dt_to_lint*/
       
  4112     break;
       
  4113 
       
  4114 /****
       
  4115  *DT_TO_DINT
       
  4116  */
       
  4117     case function_dt_to_dint :
       
  4118     {
       
  4119         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4120 
       
  4121         {
       
  4122             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4123             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4124             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4125             symbol_c *IN_type_symbol = NULL;
       
  4126             
       
  4127             /* Get the value from a foo(<param_value>) style call */
       
  4128             if (IN_param_value == NULL)
       
  4129               IN_param_value = function_call_param_iterator.next_nf();
       
  4130             if (IN_param_value != NULL) {
       
  4131               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4132               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4133             }
       
  4134             
       
  4135             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4136             {
       
  4137         
       
  4138                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  4139                 return return_type_symbol;
       
  4140                 
       
  4141             }
       
  4142             
       
  4143             
       
  4144             ERROR;
       
  4145         }
       
  4146         
       
  4147     }/*function_dt_to_dint*/
       
  4148     break;
       
  4149 
       
  4150 /****
       
  4151  *DT_TO_DWORD
       
  4152  */
       
  4153     case function_dt_to_dword :
       
  4154     {
       
  4155         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4156 
       
  4157         {
       
  4158             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4159             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4160             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4161             symbol_c *IN_type_symbol = NULL;
       
  4162             
       
  4163             /* Get the value from a foo(<param_value>) style call */
       
  4164             if (IN_param_value == NULL)
       
  4165               IN_param_value = function_call_param_iterator.next_nf();
       
  4166             if (IN_param_value != NULL) {
       
  4167               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4168               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4169             }
       
  4170             
       
  4171             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4172             {
       
  4173         
       
  4174                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  4175                 return return_type_symbol;
       
  4176                 
       
  4177             }
       
  4178             
       
  4179             
       
  4180             ERROR;
       
  4181         }
       
  4182         
       
  4183     }/*function_dt_to_dword*/
       
  4184     break;
       
  4185 
       
  4186 /****
       
  4187  *DT_TO_UDINT
       
  4188  */
       
  4189     case function_dt_to_udint :
       
  4190     {
       
  4191         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4192 
       
  4193         {
       
  4194             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4195             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4196             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4197             symbol_c *IN_type_symbol = NULL;
       
  4198             
       
  4199             /* Get the value from a foo(<param_value>) style call */
       
  4200             if (IN_param_value == NULL)
       
  4201               IN_param_value = function_call_param_iterator.next_nf();
       
  4202             if (IN_param_value != NULL) {
       
  4203               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4204               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4205             }
       
  4206             
       
  4207             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4208             {
       
  4209         
       
  4210                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  4211                 return return_type_symbol;
       
  4212                 
       
  4213             }
       
  4214             
       
  4215             
       
  4216             ERROR;
       
  4217         }
       
  4218         
       
  4219     }/*function_dt_to_udint*/
       
  4220     break;
       
  4221 
       
  4222 /****
       
  4223  *DT_TO_WORD
       
  4224  */
       
  4225     case function_dt_to_word :
       
  4226     {
       
  4227         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4228 
       
  4229         {
       
  4230             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4231             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4232             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4233             symbol_c *IN_type_symbol = NULL;
       
  4234             
       
  4235             /* Get the value from a foo(<param_value>) style call */
       
  4236             if (IN_param_value == NULL)
       
  4237               IN_param_value = function_call_param_iterator.next_nf();
       
  4238             if (IN_param_value != NULL) {
       
  4239               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4240               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4241             }
       
  4242             
       
  4243             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4244             {
       
  4245         
       
  4246                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  4247                 return return_type_symbol;
       
  4248                 
       
  4249             }
       
  4250             
       
  4251             
       
  4252             ERROR;
       
  4253         }
       
  4254         
       
  4255     }/*function_dt_to_word*/
       
  4256     break;
       
  4257 
       
  4258 /****
       
  4259  *DT_TO_STRING
       
  4260  */
       
  4261     case function_dt_to_string :
       
  4262     {
       
  4263         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4264 
       
  4265         {
       
  4266             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4267             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4268             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4269             symbol_c *IN_type_symbol = NULL;
       
  4270             
       
  4271             /* Get the value from a foo(<param_value>) style call */
       
  4272             if (IN_param_value == NULL)
       
  4273               IN_param_value = function_call_param_iterator.next_nf();
       
  4274             if (IN_param_value != NULL) {
       
  4275               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4276               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4277             }
       
  4278             
       
  4279             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4280             {
       
  4281         
       
  4282                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  4283                 return return_type_symbol;
       
  4284                 
       
  4285             }
       
  4286             
       
  4287             
       
  4288             ERROR;
       
  4289         }
       
  4290         
       
  4291     }/*function_dt_to_string*/
       
  4292     break;
       
  4293 
       
  4294 /****
       
  4295  *DT_TO_LWORD
       
  4296  */
       
  4297     case function_dt_to_lword :
       
  4298     {
       
  4299         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4300 
       
  4301         {
       
  4302             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4303             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4304             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4305             symbol_c *IN_type_symbol = NULL;
       
  4306             
       
  4307             /* Get the value from a foo(<param_value>) style call */
       
  4308             if (IN_param_value == NULL)
       
  4309               IN_param_value = function_call_param_iterator.next_nf();
       
  4310             if (IN_param_value != NULL) {
       
  4311               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4312               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4313             }
       
  4314             
       
  4315             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4316             {
       
  4317         
       
  4318                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  4319                 return return_type_symbol;
       
  4320                 
       
  4321             }
       
  4322             
       
  4323             
       
  4324             ERROR;
       
  4325         }
       
  4326         
       
  4327     }/*function_dt_to_lword*/
       
  4328     break;
       
  4329 
       
  4330 /****
       
  4331  *DT_TO_UINT
       
  4332  */
       
  4333     case function_dt_to_uint :
       
  4334     {
       
  4335         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4336 
       
  4337         {
       
  4338             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4339             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4340             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4341             symbol_c *IN_type_symbol = NULL;
       
  4342             
       
  4343             /* Get the value from a foo(<param_value>) style call */
       
  4344             if (IN_param_value == NULL)
       
  4345               IN_param_value = function_call_param_iterator.next_nf();
       
  4346             if (IN_param_value != NULL) {
       
  4347               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4348               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4349             }
       
  4350             
       
  4351             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4352             {
       
  4353         
       
  4354                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  4355                 return return_type_symbol;
       
  4356                 
       
  4357             }
       
  4358             
       
  4359             
       
  4360             ERROR;
       
  4361         }
       
  4362         
       
  4363     }/*function_dt_to_uint*/
       
  4364     break;
       
  4365 
       
  4366 /****
       
  4367  *DT_TO_LREAL
       
  4368  */
       
  4369     case function_dt_to_lreal :
       
  4370     {
       
  4371         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4372 
       
  4373         {
       
  4374             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4375             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4376             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4377             symbol_c *IN_type_symbol = NULL;
       
  4378             
       
  4379             /* Get the value from a foo(<param_value>) style call */
       
  4380             if (IN_param_value == NULL)
       
  4381               IN_param_value = function_call_param_iterator.next_nf();
       
  4382             if (IN_param_value != NULL) {
       
  4383               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4384               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4385             }
       
  4386             
       
  4387             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4388             {
       
  4389         
       
  4390                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  4391                 return return_type_symbol;
       
  4392                 
       
  4393             }
       
  4394             
       
  4395             
       
  4396             ERROR;
       
  4397         }
       
  4398         
       
  4399     }/*function_dt_to_lreal*/
       
  4400     break;
       
  4401 
       
  4402 /****
       
  4403  *DT_TO_BYTE
       
  4404  */
       
  4405     case function_dt_to_byte :
       
  4406     {
       
  4407         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4408 
       
  4409         {
       
  4410             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4411             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4412             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4413             symbol_c *IN_type_symbol = NULL;
       
  4414             
       
  4415             /* Get the value from a foo(<param_value>) style call */
       
  4416             if (IN_param_value == NULL)
       
  4417               IN_param_value = function_call_param_iterator.next_nf();
       
  4418             if (IN_param_value != NULL) {
       
  4419               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4420               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4421             }
       
  4422             
       
  4423             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4424             {
       
  4425         
       
  4426                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  4427                 return return_type_symbol;
       
  4428                 
       
  4429             }
       
  4430             
       
  4431             
       
  4432             ERROR;
       
  4433         }
       
  4434         
       
  4435     }/*function_dt_to_byte*/
       
  4436     break;
       
  4437 
       
  4438 /****
       
  4439  *DT_TO_USINT
       
  4440  */
       
  4441     case function_dt_to_usint :
       
  4442     {
       
  4443         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4444 
       
  4445         {
       
  4446             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4447             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4448             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4449             symbol_c *IN_type_symbol = NULL;
       
  4450             
       
  4451             /* Get the value from a foo(<param_value>) style call */
       
  4452             if (IN_param_value == NULL)
       
  4453               IN_param_value = function_call_param_iterator.next_nf();
       
  4454             if (IN_param_value != NULL) {
       
  4455               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4456               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4457             }
       
  4458             
       
  4459             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4460             {
       
  4461         
       
  4462                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  4463                 return return_type_symbol;
       
  4464                 
       
  4465             }
       
  4466             
       
  4467             
       
  4468             ERROR;
       
  4469         }
       
  4470         
       
  4471     }/*function_dt_to_usint*/
       
  4472     break;
       
  4473 
       
  4474 /****
       
  4475  *DT_TO_ULINT
       
  4476  */
       
  4477     case function_dt_to_ulint :
       
  4478     {
       
  4479         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4480 
       
  4481         {
       
  4482             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4483             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4484             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4485             symbol_c *IN_type_symbol = NULL;
       
  4486             
       
  4487             /* Get the value from a foo(<param_value>) style call */
       
  4488             if (IN_param_value == NULL)
       
  4489               IN_param_value = function_call_param_iterator.next_nf();
       
  4490             if (IN_param_value != NULL) {
       
  4491               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4492               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4493             }
       
  4494             
       
  4495             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4496             {
       
  4497         
       
  4498                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  4499                 return return_type_symbol;
       
  4500                 
       
  4501             }
       
  4502             
       
  4503             
       
  4504             ERROR;
       
  4505         }
       
  4506         
       
  4507     }/*function_dt_to_ulint*/
       
  4508     break;
       
  4509 
       
  4510 /****
       
  4511  *DT_TO_INT
       
  4512  */
       
  4513     case function_dt_to_int :
       
  4514     {
       
  4515         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
  4516 
       
  4517         {
       
  4518             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4519             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4520             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4521             symbol_c *IN_type_symbol = NULL;
       
  4522             
       
  4523             /* Get the value from a foo(<param_value>) style call */
       
  4524             if (IN_param_value == NULL)
       
  4525               IN_param_value = function_call_param_iterator.next_nf();
       
  4526             if (IN_param_value != NULL) {
       
  4527               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4528               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4529             }
       
  4530             
       
  4531             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
  4532             {
       
  4533         
       
  4534                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  4535                 return return_type_symbol;
       
  4536                 
       
  4537             }
       
  4538             
       
  4539             
       
  4540             ERROR;
       
  4541         }
       
  4542         
       
  4543     }/*function_dt_to_int*/
       
  4544     break;
       
  4545 
       
  4546 /****
       
  4547  *TOD_TO_REAL
       
  4548  */
       
  4549     case function_tod_to_real :
       
  4550     {
       
  4551         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4552 
       
  4553         {
       
  4554             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4555             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4556             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4557             symbol_c *IN_type_symbol = NULL;
       
  4558             
       
  4559             /* Get the value from a foo(<param_value>) style call */
       
  4560             if (IN_param_value == NULL)
       
  4561               IN_param_value = function_call_param_iterator.next_nf();
       
  4562             if (IN_param_value != NULL) {
       
  4563               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4564               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4565             }
       
  4566             
       
  4567             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4568             {
       
  4569         
       
  4570                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  4571                 return return_type_symbol;
       
  4572                 
       
  4573             }
       
  4574             
       
  4575             
       
  4576             ERROR;
       
  4577         }
       
  4578         
       
  4579     }/*function_tod_to_real*/
       
  4580     break;
       
  4581 
       
  4582 /****
       
  4583  *TOD_TO_SINT
       
  4584  */
       
  4585     case function_tod_to_sint :
       
  4586     {
       
  4587         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4588 
       
  4589         {
       
  4590             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4591             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4592             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4593             symbol_c *IN_type_symbol = NULL;
       
  4594             
       
  4595             /* Get the value from a foo(<param_value>) style call */
       
  4596             if (IN_param_value == NULL)
       
  4597               IN_param_value = function_call_param_iterator.next_nf();
       
  4598             if (IN_param_value != NULL) {
       
  4599               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4600               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4601             }
       
  4602             
       
  4603             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4604             {
       
  4605         
       
  4606                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  4607                 return return_type_symbol;
       
  4608                 
       
  4609             }
       
  4610             
       
  4611             
       
  4612             ERROR;
       
  4613         }
       
  4614         
       
  4615     }/*function_tod_to_sint*/
       
  4616     break;
       
  4617 
       
  4618 /****
       
  4619  *TOD_TO_LINT
       
  4620  */
       
  4621     case function_tod_to_lint :
       
  4622     {
       
  4623         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4624 
       
  4625         {
       
  4626             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4627             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4628             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4629             symbol_c *IN_type_symbol = NULL;
       
  4630             
       
  4631             /* Get the value from a foo(<param_value>) style call */
       
  4632             if (IN_param_value == NULL)
       
  4633               IN_param_value = function_call_param_iterator.next_nf();
       
  4634             if (IN_param_value != NULL) {
       
  4635               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4636               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4637             }
       
  4638             
       
  4639             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4640             {
       
  4641         
       
  4642                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  4643                 return return_type_symbol;
       
  4644                 
       
  4645             }
       
  4646             
       
  4647             
       
  4648             ERROR;
       
  4649         }
       
  4650         
       
  4651     }/*function_tod_to_lint*/
       
  4652     break;
       
  4653 
       
  4654 /****
       
  4655  *TOD_TO_DINT
       
  4656  */
       
  4657     case function_tod_to_dint :
       
  4658     {
       
  4659         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4660 
       
  4661         {
       
  4662             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4663             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4664             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4665             symbol_c *IN_type_symbol = NULL;
       
  4666             
       
  4667             /* Get the value from a foo(<param_value>) style call */
       
  4668             if (IN_param_value == NULL)
       
  4669               IN_param_value = function_call_param_iterator.next_nf();
       
  4670             if (IN_param_value != NULL) {
       
  4671               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4672               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4673             }
       
  4674             
       
  4675             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4676             {
       
  4677         
       
  4678                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  4679                 return return_type_symbol;
       
  4680                 
       
  4681             }
       
  4682             
       
  4683             
       
  4684             ERROR;
       
  4685         }
       
  4686         
       
  4687     }/*function_tod_to_dint*/
       
  4688     break;
       
  4689 
       
  4690 /****
       
  4691  *TOD_TO_DWORD
       
  4692  */
       
  4693     case function_tod_to_dword :
       
  4694     {
       
  4695         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4696 
       
  4697         {
       
  4698             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4699             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4700             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4701             symbol_c *IN_type_symbol = NULL;
       
  4702             
       
  4703             /* Get the value from a foo(<param_value>) style call */
       
  4704             if (IN_param_value == NULL)
       
  4705               IN_param_value = function_call_param_iterator.next_nf();
       
  4706             if (IN_param_value != NULL) {
       
  4707               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4708               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4709             }
       
  4710             
       
  4711             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4712             {
       
  4713         
       
  4714                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  4715                 return return_type_symbol;
       
  4716                 
       
  4717             }
       
  4718             
       
  4719             
       
  4720             ERROR;
       
  4721         }
       
  4722         
       
  4723     }/*function_tod_to_dword*/
       
  4724     break;
       
  4725 
       
  4726 /****
       
  4727  *TOD_TO_UDINT
       
  4728  */
       
  4729     case function_tod_to_udint :
       
  4730     {
       
  4731         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4732 
       
  4733         {
       
  4734             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4735             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4736             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4737             symbol_c *IN_type_symbol = NULL;
       
  4738             
       
  4739             /* Get the value from a foo(<param_value>) style call */
       
  4740             if (IN_param_value == NULL)
       
  4741               IN_param_value = function_call_param_iterator.next_nf();
       
  4742             if (IN_param_value != NULL) {
       
  4743               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4744               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4745             }
       
  4746             
       
  4747             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4748             {
       
  4749         
       
  4750                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  4751                 return return_type_symbol;
       
  4752                 
       
  4753             }
       
  4754             
       
  4755             
       
  4756             ERROR;
       
  4757         }
       
  4758         
       
  4759     }/*function_tod_to_udint*/
       
  4760     break;
       
  4761 
       
  4762 /****
       
  4763  *TOD_TO_WORD
       
  4764  */
       
  4765     case function_tod_to_word :
       
  4766     {
       
  4767         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4768 
       
  4769         {
       
  4770             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4771             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4772             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4773             symbol_c *IN_type_symbol = NULL;
       
  4774             
       
  4775             /* Get the value from a foo(<param_value>) style call */
       
  4776             if (IN_param_value == NULL)
       
  4777               IN_param_value = function_call_param_iterator.next_nf();
       
  4778             if (IN_param_value != NULL) {
       
  4779               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4780               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4781             }
       
  4782             
       
  4783             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4784             {
       
  4785         
       
  4786                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  4787                 return return_type_symbol;
       
  4788                 
       
  4789             }
       
  4790             
       
  4791             
       
  4792             ERROR;
       
  4793         }
       
  4794         
       
  4795     }/*function_tod_to_word*/
       
  4796     break;
       
  4797 
       
  4798 /****
       
  4799  *TOD_TO_STRING
       
  4800  */
       
  4801     case function_tod_to_string :
       
  4802     {
       
  4803         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4804 
       
  4805         {
       
  4806             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4807             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4808             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4809             symbol_c *IN_type_symbol = NULL;
       
  4810             
       
  4811             /* Get the value from a foo(<param_value>) style call */
       
  4812             if (IN_param_value == NULL)
       
  4813               IN_param_value = function_call_param_iterator.next_nf();
       
  4814             if (IN_param_value != NULL) {
       
  4815               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4816               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4817             }
       
  4818             
       
  4819             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4820             {
       
  4821         
       
  4822                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  4823                 return return_type_symbol;
       
  4824                 
       
  4825             }
       
  4826             
       
  4827             
       
  4828             ERROR;
       
  4829         }
       
  4830         
       
  4831     }/*function_tod_to_string*/
       
  4832     break;
       
  4833 
       
  4834 /****
       
  4835  *TOD_TO_LWORD
       
  4836  */
       
  4837     case function_tod_to_lword :
       
  4838     {
       
  4839         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4840 
       
  4841         {
       
  4842             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4843             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4844             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4845             symbol_c *IN_type_symbol = NULL;
       
  4846             
       
  4847             /* Get the value from a foo(<param_value>) style call */
       
  4848             if (IN_param_value == NULL)
       
  4849               IN_param_value = function_call_param_iterator.next_nf();
       
  4850             if (IN_param_value != NULL) {
       
  4851               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4852               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4853             }
       
  4854             
       
  4855             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4856             {
       
  4857         
       
  4858                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  4859                 return return_type_symbol;
       
  4860                 
       
  4861             }
       
  4862             
       
  4863             
       
  4864             ERROR;
       
  4865         }
       
  4866         
       
  4867     }/*function_tod_to_lword*/
       
  4868     break;
       
  4869 
       
  4870 /****
       
  4871  *TOD_TO_UINT
       
  4872  */
       
  4873     case function_tod_to_uint :
       
  4874     {
       
  4875         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4876 
       
  4877         {
       
  4878             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4879             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4880             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4881             symbol_c *IN_type_symbol = NULL;
       
  4882             
       
  4883             /* Get the value from a foo(<param_value>) style call */
       
  4884             if (IN_param_value == NULL)
       
  4885               IN_param_value = function_call_param_iterator.next_nf();
       
  4886             if (IN_param_value != NULL) {
       
  4887               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4888               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4889             }
       
  4890             
       
  4891             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4892             {
       
  4893         
       
  4894                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  4895                 return return_type_symbol;
       
  4896                 
       
  4897             }
       
  4898             
       
  4899             
       
  4900             ERROR;
       
  4901         }
       
  4902         
       
  4903     }/*function_tod_to_uint*/
       
  4904     break;
       
  4905 
       
  4906 /****
       
  4907  *TOD_TO_LREAL
       
  4908  */
       
  4909     case function_tod_to_lreal :
       
  4910     {
       
  4911         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4912 
       
  4913         {
       
  4914             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4915             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4916             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4917             symbol_c *IN_type_symbol = NULL;
       
  4918             
       
  4919             /* Get the value from a foo(<param_value>) style call */
       
  4920             if (IN_param_value == NULL)
       
  4921               IN_param_value = function_call_param_iterator.next_nf();
       
  4922             if (IN_param_value != NULL) {
       
  4923               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4924               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4925             }
       
  4926             
       
  4927             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4928             {
       
  4929         
       
  4930                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  4931                 return return_type_symbol;
       
  4932                 
       
  4933             }
       
  4934             
       
  4935             
       
  4936             ERROR;
       
  4937         }
       
  4938         
       
  4939     }/*function_tod_to_lreal*/
       
  4940     break;
       
  4941 
       
  4942 /****
       
  4943  *TOD_TO_BYTE
       
  4944  */
       
  4945     case function_tod_to_byte :
       
  4946     {
       
  4947         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4948 
       
  4949         {
       
  4950             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4951             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4952             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4953             symbol_c *IN_type_symbol = NULL;
       
  4954             
       
  4955             /* Get the value from a foo(<param_value>) style call */
       
  4956             if (IN_param_value == NULL)
       
  4957               IN_param_value = function_call_param_iterator.next_nf();
       
  4958             if (IN_param_value != NULL) {
       
  4959               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4960               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4961             }
       
  4962             
       
  4963             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  4964             {
       
  4965         
       
  4966                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  4967                 return return_type_symbol;
       
  4968                 
       
  4969             }
       
  4970             
       
  4971             
       
  4972             ERROR;
       
  4973         }
       
  4974         
       
  4975     }/*function_tod_to_byte*/
       
  4976     break;
       
  4977 
       
  4978 /****
       
  4979  *TOD_TO_USINT
       
  4980  */
       
  4981     case function_tod_to_usint :
       
  4982     {
       
  4983         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  4984 
       
  4985         {
       
  4986             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  4987             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  4988             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  4989             symbol_c *IN_type_symbol = NULL;
       
  4990             
       
  4991             /* Get the value from a foo(<param_value>) style call */
       
  4992             if (IN_param_value == NULL)
       
  4993               IN_param_value = function_call_param_iterator.next_nf();
       
  4994             if (IN_param_value != NULL) {
       
  4995               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  4996               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  4997             }
       
  4998             
       
  4999             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  5000             {
       
  5001         
       
  5002                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  5003                 return return_type_symbol;
       
  5004                 
       
  5005             }
       
  5006             
       
  5007             
       
  5008             ERROR;
       
  5009         }
       
  5010         
       
  5011     }/*function_tod_to_usint*/
       
  5012     break;
       
  5013 
       
  5014 /****
       
  5015  *TOD_TO_ULINT
       
  5016  */
       
  5017     case function_tod_to_ulint :
       
  5018     {
       
  5019         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  5020 
       
  5021         {
       
  5022             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5023             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5024             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5025             symbol_c *IN_type_symbol = NULL;
       
  5026             
       
  5027             /* Get the value from a foo(<param_value>) style call */
       
  5028             if (IN_param_value == NULL)
       
  5029               IN_param_value = function_call_param_iterator.next_nf();
       
  5030             if (IN_param_value != NULL) {
       
  5031               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5032               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5033             }
       
  5034             
       
  5035             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  5036             {
       
  5037         
       
  5038                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  5039                 return return_type_symbol;
       
  5040                 
       
  5041             }
       
  5042             
       
  5043             
       
  5044             ERROR;
       
  5045         }
       
  5046         
       
  5047     }/*function_tod_to_ulint*/
       
  5048     break;
       
  5049 
       
  5050 /****
       
  5051  *TOD_TO_INT
       
  5052  */
       
  5053     case function_tod_to_int :
       
  5054     {
       
  5055         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
  5056 
       
  5057         {
       
  5058             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5059             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5060             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5061             symbol_c *IN_type_symbol = NULL;
       
  5062             
       
  5063             /* Get the value from a foo(<param_value>) style call */
       
  5064             if (IN_param_value == NULL)
       
  5065               IN_param_value = function_call_param_iterator.next_nf();
       
  5066             if (IN_param_value != NULL) {
       
  5067               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5068               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5069             }
       
  5070             
       
  5071             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
  5072             {
       
  5073         
       
  5074                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  5075                 return return_type_symbol;
       
  5076                 
       
  5077             }
       
  5078             
       
  5079             
       
  5080             ERROR;
       
  5081         }
       
  5082         
       
  5083     }/*function_tod_to_int*/
       
  5084     break;
       
  5085 
       
  5086 /****
       
  5087  *UDINT_TO_REAL
       
  5088  */
       
  5089     case function_udint_to_real :
       
  5090     {
       
  5091         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5092 
       
  5093         {
       
  5094             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5095             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5096             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5097             symbol_c *IN_type_symbol = NULL;
       
  5098             
       
  5099             /* Get the value from a foo(<param_value>) style call */
       
  5100             if (IN_param_value == NULL)
       
  5101               IN_param_value = function_call_param_iterator.next_nf();
       
  5102             if (IN_param_value != NULL) {
       
  5103               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5104               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5105             }
       
  5106             
       
  5107             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5108             {
       
  5109         
       
  5110                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  5111                 return return_type_symbol;
       
  5112                 
       
  5113             }
       
  5114             
       
  5115             
       
  5116             ERROR;
       
  5117         }
       
  5118         
       
  5119     }/*function_udint_to_real*/
       
  5120     break;
       
  5121 
       
  5122 /****
       
  5123  *UDINT_TO_SINT
       
  5124  */
       
  5125     case function_udint_to_sint :
       
  5126     {
       
  5127         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5128 
       
  5129         {
       
  5130             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5131             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5132             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5133             symbol_c *IN_type_symbol = NULL;
       
  5134             
       
  5135             /* Get the value from a foo(<param_value>) style call */
       
  5136             if (IN_param_value == NULL)
       
  5137               IN_param_value = function_call_param_iterator.next_nf();
       
  5138             if (IN_param_value != NULL) {
       
  5139               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5140               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5141             }
       
  5142             
       
  5143             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5144             {
       
  5145         
       
  5146                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  5147                 return return_type_symbol;
       
  5148                 
       
  5149             }
       
  5150             
       
  5151             
       
  5152             ERROR;
       
  5153         }
       
  5154         
       
  5155     }/*function_udint_to_sint*/
       
  5156     break;
       
  5157 
       
  5158 /****
       
  5159  *UDINT_TO_LINT
       
  5160  */
       
  5161     case function_udint_to_lint :
       
  5162     {
       
  5163         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5164 
       
  5165         {
       
  5166             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5167             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5168             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5169             symbol_c *IN_type_symbol = NULL;
       
  5170             
       
  5171             /* Get the value from a foo(<param_value>) style call */
       
  5172             if (IN_param_value == NULL)
       
  5173               IN_param_value = function_call_param_iterator.next_nf();
       
  5174             if (IN_param_value != NULL) {
       
  5175               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5176               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5177             }
       
  5178             
       
  5179             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5180             {
       
  5181         
       
  5182                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  5183                 return return_type_symbol;
       
  5184                 
       
  5185             }
       
  5186             
       
  5187             
       
  5188             ERROR;
       
  5189         }
       
  5190         
       
  5191     }/*function_udint_to_lint*/
       
  5192     break;
       
  5193 
       
  5194 /****
       
  5195  *UDINT_TO_DINT
       
  5196  */
       
  5197     case function_udint_to_dint :
       
  5198     {
       
  5199         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5200 
       
  5201         {
       
  5202             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5203             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5204             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5205             symbol_c *IN_type_symbol = NULL;
       
  5206             
       
  5207             /* Get the value from a foo(<param_value>) style call */
       
  5208             if (IN_param_value == NULL)
       
  5209               IN_param_value = function_call_param_iterator.next_nf();
       
  5210             if (IN_param_value != NULL) {
       
  5211               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5212               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5213             }
       
  5214             
       
  5215             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5216             {
       
  5217         
       
  5218                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  5219                 return return_type_symbol;
       
  5220                 
       
  5221             }
       
  5222             
       
  5223             
       
  5224             ERROR;
       
  5225         }
       
  5226         
       
  5227     }/*function_udint_to_dint*/
       
  5228     break;
       
  5229 
       
  5230 /****
       
  5231  *UDINT_TO_DATE
       
  5232  */
       
  5233     case function_udint_to_date :
       
  5234     {
       
  5235         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5236 
       
  5237         {
       
  5238             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5239             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5240             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5241             symbol_c *IN_type_symbol = NULL;
       
  5242             
       
  5243             /* Get the value from a foo(<param_value>) style call */
       
  5244             if (IN_param_value == NULL)
       
  5245               IN_param_value = function_call_param_iterator.next_nf();
       
  5246             if (IN_param_value != NULL) {
       
  5247               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5248               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5249             }
       
  5250             
       
  5251             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5252             {
       
  5253         
       
  5254                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  5255                 return return_type_symbol;
       
  5256                 
       
  5257             }
       
  5258             
       
  5259             
       
  5260             ERROR;
       
  5261         }
       
  5262         
       
  5263     }/*function_udint_to_date*/
       
  5264     break;
       
  5265 
       
  5266 /****
       
  5267  *UDINT_TO_DWORD
       
  5268  */
       
  5269     case function_udint_to_dword :
       
  5270     {
       
  5271         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5272 
       
  5273         {
       
  5274             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5275             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5276             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5277             symbol_c *IN_type_symbol = NULL;
       
  5278             
       
  5279             /* Get the value from a foo(<param_value>) style call */
       
  5280             if (IN_param_value == NULL)
       
  5281               IN_param_value = function_call_param_iterator.next_nf();
       
  5282             if (IN_param_value != NULL) {
       
  5283               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5284               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5285             }
       
  5286             
       
  5287             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5288             {
       
  5289         
       
  5290                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  5291                 return return_type_symbol;
       
  5292                 
       
  5293             }
       
  5294             
       
  5295             
       
  5296             ERROR;
       
  5297         }
       
  5298         
       
  5299     }/*function_udint_to_dword*/
       
  5300     break;
       
  5301 
       
  5302 /****
       
  5303  *UDINT_TO_DT
       
  5304  */
       
  5305     case function_udint_to_dt :
       
  5306     {
       
  5307         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5308 
       
  5309         {
       
  5310             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5311             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5312             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5313             symbol_c *IN_type_symbol = NULL;
       
  5314             
       
  5315             /* Get the value from a foo(<param_value>) style call */
       
  5316             if (IN_param_value == NULL)
       
  5317               IN_param_value = function_call_param_iterator.next_nf();
       
  5318             if (IN_param_value != NULL) {
       
  5319               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5320               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5321             }
       
  5322             
       
  5323             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5324             {
       
  5325         
       
  5326                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  5327                 return return_type_symbol;
       
  5328                 
       
  5329             }
       
  5330             
       
  5331             
       
  5332             ERROR;
       
  5333         }
       
  5334         
       
  5335     }/*function_udint_to_dt*/
       
  5336     break;
       
  5337 
       
  5338 /****
       
  5339  *UDINT_TO_TOD
       
  5340  */
       
  5341     case function_udint_to_tod :
       
  5342     {
       
  5343         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5344 
       
  5345         {
       
  5346             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5347             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5348             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5349             symbol_c *IN_type_symbol = NULL;
       
  5350             
       
  5351             /* Get the value from a foo(<param_value>) style call */
       
  5352             if (IN_param_value == NULL)
       
  5353               IN_param_value = function_call_param_iterator.next_nf();
       
  5354             if (IN_param_value != NULL) {
       
  5355               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5356               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5357             }
       
  5358             
       
  5359             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5360             {
       
  5361         
       
  5362                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  5363                 return return_type_symbol;
       
  5364                 
       
  5365             }
       
  5366             
       
  5367             
       
  5368             ERROR;
       
  5369         }
       
  5370         
       
  5371     }/*function_udint_to_tod*/
       
  5372     break;
       
  5373 
       
  5374 /****
       
  5375  *UDINT_TO_WORD
       
  5376  */
       
  5377     case function_udint_to_word :
       
  5378     {
       
  5379         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5380 
       
  5381         {
       
  5382             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5383             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5384             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5385             symbol_c *IN_type_symbol = NULL;
       
  5386             
       
  5387             /* Get the value from a foo(<param_value>) style call */
       
  5388             if (IN_param_value == NULL)
       
  5389               IN_param_value = function_call_param_iterator.next_nf();
       
  5390             if (IN_param_value != NULL) {
       
  5391               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5392               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5393             }
       
  5394             
       
  5395             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5396             {
       
  5397         
       
  5398                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  5399                 return return_type_symbol;
       
  5400                 
       
  5401             }
       
  5402             
       
  5403             
       
  5404             ERROR;
       
  5405         }
       
  5406         
       
  5407     }/*function_udint_to_word*/
       
  5408     break;
       
  5409 
       
  5410 /****
       
  5411  *UDINT_TO_STRING
       
  5412  */
       
  5413     case function_udint_to_string :
       
  5414     {
       
  5415         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5416 
       
  5417         {
       
  5418             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5419             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5420             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5421             symbol_c *IN_type_symbol = NULL;
       
  5422             
       
  5423             /* Get the value from a foo(<param_value>) style call */
       
  5424             if (IN_param_value == NULL)
       
  5425               IN_param_value = function_call_param_iterator.next_nf();
       
  5426             if (IN_param_value != NULL) {
       
  5427               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5428               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5429             }
       
  5430             
       
  5431             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5432             {
       
  5433         
       
  5434                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  5435                 return return_type_symbol;
       
  5436                 
       
  5437             }
       
  5438             
       
  5439             
       
  5440             ERROR;
       
  5441         }
       
  5442         
       
  5443     }/*function_udint_to_string*/
       
  5444     break;
       
  5445 
       
  5446 /****
       
  5447  *UDINT_TO_LWORD
       
  5448  */
       
  5449     case function_udint_to_lword :
       
  5450     {
       
  5451         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5452 
       
  5453         {
       
  5454             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5455             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5456             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5457             symbol_c *IN_type_symbol = NULL;
       
  5458             
       
  5459             /* Get the value from a foo(<param_value>) style call */
       
  5460             if (IN_param_value == NULL)
       
  5461               IN_param_value = function_call_param_iterator.next_nf();
       
  5462             if (IN_param_value != NULL) {
       
  5463               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5464               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5465             }
       
  5466             
       
  5467             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5468             {
       
  5469         
       
  5470                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  5471                 return return_type_symbol;
       
  5472                 
       
  5473             }
       
  5474             
       
  5475             
       
  5476             ERROR;
       
  5477         }
       
  5478         
       
  5479     }/*function_udint_to_lword*/
       
  5480     break;
       
  5481 
       
  5482 /****
       
  5483  *UDINT_TO_UINT
       
  5484  */
       
  5485     case function_udint_to_uint :
       
  5486     {
       
  5487         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5488 
       
  5489         {
       
  5490             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5491             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5492             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5493             symbol_c *IN_type_symbol = NULL;
       
  5494             
       
  5495             /* Get the value from a foo(<param_value>) style call */
       
  5496             if (IN_param_value == NULL)
       
  5497               IN_param_value = function_call_param_iterator.next_nf();
       
  5498             if (IN_param_value != NULL) {
       
  5499               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5500               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5501             }
       
  5502             
       
  5503             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5504             {
       
  5505         
       
  5506                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  5507                 return return_type_symbol;
       
  5508                 
       
  5509             }
       
  5510             
       
  5511             
       
  5512             ERROR;
       
  5513         }
       
  5514         
       
  5515     }/*function_udint_to_uint*/
       
  5516     break;
       
  5517 
       
  5518 /****
       
  5519  *UDINT_TO_LREAL
       
  5520  */
       
  5521     case function_udint_to_lreal :
       
  5522     {
       
  5523         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5524 
       
  5525         {
       
  5526             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5527             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5528             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5529             symbol_c *IN_type_symbol = NULL;
       
  5530             
       
  5531             /* Get the value from a foo(<param_value>) style call */
       
  5532             if (IN_param_value == NULL)
       
  5533               IN_param_value = function_call_param_iterator.next_nf();
       
  5534             if (IN_param_value != NULL) {
       
  5535               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5536               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5537             }
       
  5538             
       
  5539             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5540             {
       
  5541         
       
  5542                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  5543                 return return_type_symbol;
       
  5544                 
       
  5545             }
       
  5546             
       
  5547             
       
  5548             ERROR;
       
  5549         }
       
  5550         
       
  5551     }/*function_udint_to_lreal*/
       
  5552     break;
       
  5553 
       
  5554 /****
       
  5555  *UDINT_TO_BYTE
       
  5556  */
       
  5557     case function_udint_to_byte :
       
  5558     {
       
  5559         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5560 
       
  5561         {
       
  5562             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5563             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5564             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5565             symbol_c *IN_type_symbol = NULL;
       
  5566             
       
  5567             /* Get the value from a foo(<param_value>) style call */
       
  5568             if (IN_param_value == NULL)
       
  5569               IN_param_value = function_call_param_iterator.next_nf();
       
  5570             if (IN_param_value != NULL) {
       
  5571               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5572               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5573             }
       
  5574             
       
  5575             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5576             {
       
  5577         
       
  5578                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  5579                 return return_type_symbol;
       
  5580                 
       
  5581             }
       
  5582             
       
  5583             
       
  5584             ERROR;
       
  5585         }
       
  5586         
       
  5587     }/*function_udint_to_byte*/
       
  5588     break;
       
  5589 
       
  5590 /****
       
  5591  *UDINT_TO_USINT
       
  5592  */
       
  5593     case function_udint_to_usint :
       
  5594     {
       
  5595         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5596 
       
  5597         {
       
  5598             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5599             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5600             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5601             symbol_c *IN_type_symbol = NULL;
       
  5602             
       
  5603             /* Get the value from a foo(<param_value>) style call */
       
  5604             if (IN_param_value == NULL)
       
  5605               IN_param_value = function_call_param_iterator.next_nf();
       
  5606             if (IN_param_value != NULL) {
       
  5607               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5608               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5609             }
       
  5610             
       
  5611             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5612             {
       
  5613         
       
  5614                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  5615                 return return_type_symbol;
       
  5616                 
       
  5617             }
       
  5618             
       
  5619             
       
  5620             ERROR;
       
  5621         }
       
  5622         
       
  5623     }/*function_udint_to_usint*/
       
  5624     break;
       
  5625 
       
  5626 /****
       
  5627  *UDINT_TO_ULINT
       
  5628  */
       
  5629     case function_udint_to_ulint :
       
  5630     {
       
  5631         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5632 
       
  5633         {
       
  5634             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5635             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5636             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5637             symbol_c *IN_type_symbol = NULL;
       
  5638             
       
  5639             /* Get the value from a foo(<param_value>) style call */
       
  5640             if (IN_param_value == NULL)
       
  5641               IN_param_value = function_call_param_iterator.next_nf();
       
  5642             if (IN_param_value != NULL) {
       
  5643               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5644               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5645             }
       
  5646             
       
  5647             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5648             {
       
  5649         
       
  5650                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  5651                 return return_type_symbol;
       
  5652                 
       
  5653             }
       
  5654             
       
  5655             
       
  5656             ERROR;
       
  5657         }
       
  5658         
       
  5659     }/*function_udint_to_ulint*/
       
  5660     break;
       
  5661 
       
  5662 /****
       
  5663  *UDINT_TO_BOOL
       
  5664  */
       
  5665     case function_udint_to_bool :
       
  5666     {
       
  5667         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5668 
       
  5669         {
       
  5670             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5671             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5672             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5673             symbol_c *IN_type_symbol = NULL;
       
  5674             
       
  5675             /* Get the value from a foo(<param_value>) style call */
       
  5676             if (IN_param_value == NULL)
       
  5677               IN_param_value = function_call_param_iterator.next_nf();
       
  5678             if (IN_param_value != NULL) {
       
  5679               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5680               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5681             }
       
  5682             
       
  5683             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5684             {
       
  5685         
       
  5686                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  5687                 return return_type_symbol;
       
  5688                 
       
  5689             }
       
  5690             
       
  5691             
       
  5692             ERROR;
       
  5693         }
       
  5694         
       
  5695     }/*function_udint_to_bool*/
       
  5696     break;
       
  5697 
       
  5698 /****
       
  5699  *UDINT_TO_TIME
       
  5700  */
       
  5701     case function_udint_to_time :
       
  5702     {
       
  5703         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5704 
       
  5705         {
       
  5706             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5707             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5708             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5709             symbol_c *IN_type_symbol = NULL;
       
  5710             
       
  5711             /* Get the value from a foo(<param_value>) style call */
       
  5712             if (IN_param_value == NULL)
       
  5713               IN_param_value = function_call_param_iterator.next_nf();
       
  5714             if (IN_param_value != NULL) {
       
  5715               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5716               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5717             }
       
  5718             
       
  5719             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5720             {
       
  5721         
       
  5722                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  5723                 return return_type_symbol;
       
  5724                 
       
  5725             }
       
  5726             
       
  5727             
       
  5728             ERROR;
       
  5729         }
       
  5730         
       
  5731     }/*function_udint_to_time*/
       
  5732     break;
       
  5733 
       
  5734 /****
       
  5735  *UDINT_TO_INT
       
  5736  */
       
  5737     case function_udint_to_int :
       
  5738     {
       
  5739         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
  5740 
       
  5741         {
       
  5742             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5743             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5744             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5745             symbol_c *IN_type_symbol = NULL;
       
  5746             
       
  5747             /* Get the value from a foo(<param_value>) style call */
       
  5748             if (IN_param_value == NULL)
       
  5749               IN_param_value = function_call_param_iterator.next_nf();
       
  5750             if (IN_param_value != NULL) {
       
  5751               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5752               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5753             }
       
  5754             
       
  5755             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
  5756             {
       
  5757         
       
  5758                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  5759                 return return_type_symbol;
       
  5760                 
       
  5761             }
       
  5762             
       
  5763             
       
  5764             ERROR;
       
  5765         }
       
  5766         
       
  5767     }/*function_udint_to_int*/
       
  5768     break;
       
  5769 
       
  5770 /****
       
  5771  *WORD_TO_REAL
       
  5772  */
       
  5773     case function_word_to_real :
       
  5774     {
       
  5775         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5776 
       
  5777         {
       
  5778             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5779             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5780             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5781             symbol_c *IN_type_symbol = NULL;
       
  5782             
       
  5783             /* Get the value from a foo(<param_value>) style call */
       
  5784             if (IN_param_value == NULL)
       
  5785               IN_param_value = function_call_param_iterator.next_nf();
       
  5786             if (IN_param_value != NULL) {
       
  5787               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5788               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5789             }
       
  5790             
       
  5791             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5792             {
       
  5793         
       
  5794                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  5795                 return return_type_symbol;
       
  5796                 
       
  5797             }
       
  5798             
       
  5799             
       
  5800             ERROR;
       
  5801         }
       
  5802         
       
  5803     }/*function_word_to_real*/
       
  5804     break;
       
  5805 
       
  5806 /****
       
  5807  *WORD_TO_SINT
       
  5808  */
       
  5809     case function_word_to_sint :
       
  5810     {
       
  5811         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5812 
       
  5813         {
       
  5814             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5815             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5816             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5817             symbol_c *IN_type_symbol = NULL;
       
  5818             
       
  5819             /* Get the value from a foo(<param_value>) style call */
       
  5820             if (IN_param_value == NULL)
       
  5821               IN_param_value = function_call_param_iterator.next_nf();
       
  5822             if (IN_param_value != NULL) {
       
  5823               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5824               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5825             }
       
  5826             
       
  5827             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5828             {
       
  5829         
       
  5830                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  5831                 return return_type_symbol;
       
  5832                 
       
  5833             }
       
  5834             
       
  5835             
       
  5836             ERROR;
       
  5837         }
       
  5838         
       
  5839     }/*function_word_to_sint*/
       
  5840     break;
       
  5841 
       
  5842 /****
       
  5843  *WORD_TO_LINT
       
  5844  */
       
  5845     case function_word_to_lint :
       
  5846     {
       
  5847         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5848 
       
  5849         {
       
  5850             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5851             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5852             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5853             symbol_c *IN_type_symbol = NULL;
       
  5854             
       
  5855             /* Get the value from a foo(<param_value>) style call */
       
  5856             if (IN_param_value == NULL)
       
  5857               IN_param_value = function_call_param_iterator.next_nf();
       
  5858             if (IN_param_value != NULL) {
       
  5859               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5860               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5861             }
       
  5862             
       
  5863             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5864             {
       
  5865         
       
  5866                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  5867                 return return_type_symbol;
       
  5868                 
       
  5869             }
       
  5870             
       
  5871             
       
  5872             ERROR;
       
  5873         }
       
  5874         
       
  5875     }/*function_word_to_lint*/
       
  5876     break;
       
  5877 
       
  5878 /****
       
  5879  *WORD_TO_DINT
       
  5880  */
       
  5881     case function_word_to_dint :
       
  5882     {
       
  5883         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5884 
       
  5885         {
       
  5886             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5887             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5888             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5889             symbol_c *IN_type_symbol = NULL;
       
  5890             
       
  5891             /* Get the value from a foo(<param_value>) style call */
       
  5892             if (IN_param_value == NULL)
       
  5893               IN_param_value = function_call_param_iterator.next_nf();
       
  5894             if (IN_param_value != NULL) {
       
  5895               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5896               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5897             }
       
  5898             
       
  5899             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5900             {
       
  5901         
       
  5902                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  5903                 return return_type_symbol;
       
  5904                 
       
  5905             }
       
  5906             
       
  5907             
       
  5908             ERROR;
       
  5909         }
       
  5910         
       
  5911     }/*function_word_to_dint*/
       
  5912     break;
       
  5913 
       
  5914 /****
       
  5915  *WORD_TO_DATE
       
  5916  */
       
  5917     case function_word_to_date :
       
  5918     {
       
  5919         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5920 
       
  5921         {
       
  5922             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5923             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5924             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5925             symbol_c *IN_type_symbol = NULL;
       
  5926             
       
  5927             /* Get the value from a foo(<param_value>) style call */
       
  5928             if (IN_param_value == NULL)
       
  5929               IN_param_value = function_call_param_iterator.next_nf();
       
  5930             if (IN_param_value != NULL) {
       
  5931               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5932               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5933             }
       
  5934             
       
  5935             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5936             {
       
  5937         
       
  5938                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  5939                 return return_type_symbol;
       
  5940                 
       
  5941             }
       
  5942             
       
  5943             
       
  5944             ERROR;
       
  5945         }
       
  5946         
       
  5947     }/*function_word_to_date*/
       
  5948     break;
       
  5949 
       
  5950 /****
       
  5951  *WORD_TO_DWORD
       
  5952  */
       
  5953     case function_word_to_dword :
       
  5954     {
       
  5955         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5956 
       
  5957         {
       
  5958             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5959             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5960             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5961             symbol_c *IN_type_symbol = NULL;
       
  5962             
       
  5963             /* Get the value from a foo(<param_value>) style call */
       
  5964             if (IN_param_value == NULL)
       
  5965               IN_param_value = function_call_param_iterator.next_nf();
       
  5966             if (IN_param_value != NULL) {
       
  5967               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  5968               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  5969             }
       
  5970             
       
  5971             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  5972             {
       
  5973         
       
  5974                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  5975                 return return_type_symbol;
       
  5976                 
       
  5977             }
       
  5978             
       
  5979             
       
  5980             ERROR;
       
  5981         }
       
  5982         
       
  5983     }/*function_word_to_dword*/
       
  5984     break;
       
  5985 
       
  5986 /****
       
  5987  *WORD_TO_DT
       
  5988  */
       
  5989     case function_word_to_dt :
       
  5990     {
       
  5991         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  5992 
       
  5993         {
       
  5994             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  5995             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  5996             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  5997             symbol_c *IN_type_symbol = NULL;
       
  5998             
       
  5999             /* Get the value from a foo(<param_value>) style call */
       
  6000             if (IN_param_value == NULL)
       
  6001               IN_param_value = function_call_param_iterator.next_nf();
       
  6002             if (IN_param_value != NULL) {
       
  6003               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6004               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6005             }
       
  6006             
       
  6007             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6008             {
       
  6009         
       
  6010                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  6011                 return return_type_symbol;
       
  6012                 
       
  6013             }
       
  6014             
       
  6015             
       
  6016             ERROR;
       
  6017         }
       
  6018         
       
  6019     }/*function_word_to_dt*/
       
  6020     break;
       
  6021 
       
  6022 /****
       
  6023  *WORD_TO_TOD
       
  6024  */
       
  6025     case function_word_to_tod :
       
  6026     {
       
  6027         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6028 
       
  6029         {
       
  6030             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6031             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6032             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6033             symbol_c *IN_type_symbol = NULL;
       
  6034             
       
  6035             /* Get the value from a foo(<param_value>) style call */
       
  6036             if (IN_param_value == NULL)
       
  6037               IN_param_value = function_call_param_iterator.next_nf();
       
  6038             if (IN_param_value != NULL) {
       
  6039               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6040               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6041             }
       
  6042             
       
  6043             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6044             {
       
  6045         
       
  6046                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  6047                 return return_type_symbol;
       
  6048                 
       
  6049             }
       
  6050             
       
  6051             
       
  6052             ERROR;
       
  6053         }
       
  6054         
       
  6055     }/*function_word_to_tod*/
       
  6056     break;
       
  6057 
       
  6058 /****
       
  6059  *WORD_TO_UDINT
       
  6060  */
       
  6061     case function_word_to_udint :
       
  6062     {
       
  6063         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6064 
       
  6065         {
       
  6066             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6067             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6068             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6069             symbol_c *IN_type_symbol = NULL;
       
  6070             
       
  6071             /* Get the value from a foo(<param_value>) style call */
       
  6072             if (IN_param_value == NULL)
       
  6073               IN_param_value = function_call_param_iterator.next_nf();
       
  6074             if (IN_param_value != NULL) {
       
  6075               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6076               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6077             }
       
  6078             
       
  6079             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6080             {
       
  6081         
       
  6082                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  6083                 return return_type_symbol;
       
  6084                 
       
  6085             }
       
  6086             
       
  6087             
       
  6088             ERROR;
       
  6089         }
       
  6090         
       
  6091     }/*function_word_to_udint*/
       
  6092     break;
       
  6093 
       
  6094 /****
       
  6095  *WORD_TO_STRING
       
  6096  */
       
  6097     case function_word_to_string :
       
  6098     {
       
  6099         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6100 
       
  6101         {
       
  6102             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6103             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6104             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6105             symbol_c *IN_type_symbol = NULL;
       
  6106             
       
  6107             /* Get the value from a foo(<param_value>) style call */
       
  6108             if (IN_param_value == NULL)
       
  6109               IN_param_value = function_call_param_iterator.next_nf();
       
  6110             if (IN_param_value != NULL) {
       
  6111               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6112               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6113             }
       
  6114             
       
  6115             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6116             {
       
  6117         
       
  6118                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  6119                 return return_type_symbol;
       
  6120                 
       
  6121             }
       
  6122             
       
  6123             
       
  6124             ERROR;
       
  6125         }
       
  6126         
       
  6127     }/*function_word_to_string*/
       
  6128     break;
       
  6129 
       
  6130 /****
       
  6131  *WORD_TO_LWORD
       
  6132  */
       
  6133     case function_word_to_lword :
       
  6134     {
       
  6135         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6136 
       
  6137         {
       
  6138             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6139             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6140             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6141             symbol_c *IN_type_symbol = NULL;
       
  6142             
       
  6143             /* Get the value from a foo(<param_value>) style call */
       
  6144             if (IN_param_value == NULL)
       
  6145               IN_param_value = function_call_param_iterator.next_nf();
       
  6146             if (IN_param_value != NULL) {
       
  6147               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6148               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6149             }
       
  6150             
       
  6151             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6152             {
       
  6153         
       
  6154                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  6155                 return return_type_symbol;
       
  6156                 
       
  6157             }
       
  6158             
       
  6159             
       
  6160             ERROR;
       
  6161         }
       
  6162         
       
  6163     }/*function_word_to_lword*/
       
  6164     break;
       
  6165 
       
  6166 /****
       
  6167  *WORD_TO_UINT
       
  6168  */
       
  6169     case function_word_to_uint :
       
  6170     {
       
  6171         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6172 
       
  6173         {
       
  6174             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6175             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6176             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6177             symbol_c *IN_type_symbol = NULL;
       
  6178             
       
  6179             /* Get the value from a foo(<param_value>) style call */
       
  6180             if (IN_param_value == NULL)
       
  6181               IN_param_value = function_call_param_iterator.next_nf();
       
  6182             if (IN_param_value != NULL) {
       
  6183               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6184               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6185             }
       
  6186             
       
  6187             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6188             {
       
  6189         
       
  6190                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  6191                 return return_type_symbol;
       
  6192                 
       
  6193             }
       
  6194             
       
  6195             
       
  6196             ERROR;
       
  6197         }
       
  6198         
       
  6199     }/*function_word_to_uint*/
       
  6200     break;
       
  6201 
       
  6202 /****
       
  6203  *WORD_TO_LREAL
       
  6204  */
       
  6205     case function_word_to_lreal :
       
  6206     {
       
  6207         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6208 
       
  6209         {
       
  6210             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6211             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6212             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6213             symbol_c *IN_type_symbol = NULL;
       
  6214             
       
  6215             /* Get the value from a foo(<param_value>) style call */
       
  6216             if (IN_param_value == NULL)
       
  6217               IN_param_value = function_call_param_iterator.next_nf();
       
  6218             if (IN_param_value != NULL) {
       
  6219               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6220               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6221             }
       
  6222             
       
  6223             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6224             {
       
  6225         
       
  6226                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  6227                 return return_type_symbol;
       
  6228                 
       
  6229             }
       
  6230             
       
  6231             
       
  6232             ERROR;
       
  6233         }
       
  6234         
       
  6235     }/*function_word_to_lreal*/
       
  6236     break;
       
  6237 
       
  6238 /****
       
  6239  *WORD_TO_BYTE
       
  6240  */
       
  6241     case function_word_to_byte :
       
  6242     {
       
  6243         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6244 
       
  6245         {
       
  6246             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6247             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6248             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6249             symbol_c *IN_type_symbol = NULL;
       
  6250             
       
  6251             /* Get the value from a foo(<param_value>) style call */
       
  6252             if (IN_param_value == NULL)
       
  6253               IN_param_value = function_call_param_iterator.next_nf();
       
  6254             if (IN_param_value != NULL) {
       
  6255               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6256               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6257             }
       
  6258             
       
  6259             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6260             {
       
  6261         
       
  6262                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  6263                 return return_type_symbol;
       
  6264                 
       
  6265             }
       
  6266             
       
  6267             
       
  6268             ERROR;
       
  6269         }
       
  6270         
       
  6271     }/*function_word_to_byte*/
       
  6272     break;
       
  6273 
       
  6274 /****
       
  6275  *WORD_TO_USINT
       
  6276  */
       
  6277     case function_word_to_usint :
       
  6278     {
       
  6279         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6280 
       
  6281         {
       
  6282             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6283             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6284             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6285             symbol_c *IN_type_symbol = NULL;
       
  6286             
       
  6287             /* Get the value from a foo(<param_value>) style call */
       
  6288             if (IN_param_value == NULL)
       
  6289               IN_param_value = function_call_param_iterator.next_nf();
       
  6290             if (IN_param_value != NULL) {
       
  6291               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6292               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6293             }
       
  6294             
       
  6295             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6296             {
       
  6297         
       
  6298                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  6299                 return return_type_symbol;
       
  6300                 
       
  6301             }
       
  6302             
       
  6303             
       
  6304             ERROR;
       
  6305         }
       
  6306         
       
  6307     }/*function_word_to_usint*/
       
  6308     break;
       
  6309 
       
  6310 /****
       
  6311  *WORD_TO_ULINT
       
  6312  */
       
  6313     case function_word_to_ulint :
       
  6314     {
       
  6315         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6316 
       
  6317         {
       
  6318             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6319             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6320             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6321             symbol_c *IN_type_symbol = NULL;
       
  6322             
       
  6323             /* Get the value from a foo(<param_value>) style call */
       
  6324             if (IN_param_value == NULL)
       
  6325               IN_param_value = function_call_param_iterator.next_nf();
       
  6326             if (IN_param_value != NULL) {
       
  6327               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6328               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6329             }
       
  6330             
       
  6331             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6332             {
       
  6333         
       
  6334                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  6335                 return return_type_symbol;
       
  6336                 
       
  6337             }
       
  6338             
       
  6339             
       
  6340             ERROR;
       
  6341         }
       
  6342         
       
  6343     }/*function_word_to_ulint*/
       
  6344     break;
       
  6345 
       
  6346 /****
       
  6347  *WORD_TO_BOOL
       
  6348  */
       
  6349     case function_word_to_bool :
       
  6350     {
       
  6351         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6352 
       
  6353         {
       
  6354             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6355             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6356             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6357             symbol_c *IN_type_symbol = NULL;
       
  6358             
       
  6359             /* Get the value from a foo(<param_value>) style call */
       
  6360             if (IN_param_value == NULL)
       
  6361               IN_param_value = function_call_param_iterator.next_nf();
       
  6362             if (IN_param_value != NULL) {
       
  6363               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6364               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6365             }
       
  6366             
       
  6367             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6368             {
       
  6369         
       
  6370                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  6371                 return return_type_symbol;
       
  6372                 
       
  6373             }
       
  6374             
       
  6375             
       
  6376             ERROR;
       
  6377         }
       
  6378         
       
  6379     }/*function_word_to_bool*/
       
  6380     break;
       
  6381 
       
  6382 /****
       
  6383  *WORD_TO_TIME
       
  6384  */
       
  6385     case function_word_to_time :
       
  6386     {
       
  6387         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6388 
       
  6389         {
       
  6390             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6391             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6392             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6393             symbol_c *IN_type_symbol = NULL;
       
  6394             
       
  6395             /* Get the value from a foo(<param_value>) style call */
       
  6396             if (IN_param_value == NULL)
       
  6397               IN_param_value = function_call_param_iterator.next_nf();
       
  6398             if (IN_param_value != NULL) {
       
  6399               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6400               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6401             }
       
  6402             
       
  6403             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6404             {
       
  6405         
       
  6406                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  6407                 return return_type_symbol;
       
  6408                 
       
  6409             }
       
  6410             
       
  6411             
       
  6412             ERROR;
       
  6413         }
       
  6414         
       
  6415     }/*function_word_to_time*/
       
  6416     break;
       
  6417 
       
  6418 /****
       
  6419  *WORD_TO_INT
       
  6420  */
       
  6421     case function_word_to_int :
       
  6422     {
       
  6423         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
  6424 
       
  6425         {
       
  6426             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6427             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6428             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6429             symbol_c *IN_type_symbol = NULL;
       
  6430             
       
  6431             /* Get the value from a foo(<param_value>) style call */
       
  6432             if (IN_param_value == NULL)
       
  6433               IN_param_value = function_call_param_iterator.next_nf();
       
  6434             if (IN_param_value != NULL) {
       
  6435               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6436               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6437             }
       
  6438             
       
  6439             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
  6440             {
       
  6441         
       
  6442                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  6443                 return return_type_symbol;
       
  6444                 
       
  6445             }
       
  6446             
       
  6447             
       
  6448             ERROR;
       
  6449         }
       
  6450         
       
  6451     }/*function_word_to_int*/
       
  6452     break;
       
  6453 
       
  6454 /****
       
  6455  *STRING_TO_REAL
       
  6456  */
       
  6457     case function_string_to_real :
       
  6458     {
       
  6459         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6460 
       
  6461         {
       
  6462             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6463             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6464             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6465             symbol_c *IN_type_symbol = NULL;
       
  6466             
       
  6467             /* Get the value from a foo(<param_value>) style call */
       
  6468             if (IN_param_value == NULL)
       
  6469               IN_param_value = function_call_param_iterator.next_nf();
       
  6470             if (IN_param_value != NULL) {
       
  6471               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6472               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6473             }
       
  6474             
       
  6475             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6476             {
       
  6477         
       
  6478                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  6479                 return return_type_symbol;
       
  6480                 
       
  6481             }
       
  6482             
       
  6483             
       
  6484             ERROR;
       
  6485         }
       
  6486         
       
  6487     }/*function_string_to_real*/
       
  6488     break;
       
  6489 
       
  6490 /****
       
  6491  *STRING_TO_SINT
       
  6492  */
       
  6493     case function_string_to_sint :
       
  6494     {
       
  6495         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6496 
       
  6497         {
       
  6498             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6499             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6500             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6501             symbol_c *IN_type_symbol = NULL;
       
  6502             
       
  6503             /* Get the value from a foo(<param_value>) style call */
       
  6504             if (IN_param_value == NULL)
       
  6505               IN_param_value = function_call_param_iterator.next_nf();
       
  6506             if (IN_param_value != NULL) {
       
  6507               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6508               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6509             }
       
  6510             
       
  6511             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6512             {
       
  6513         
       
  6514                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  6515                 return return_type_symbol;
       
  6516                 
       
  6517             }
       
  6518             
       
  6519             
       
  6520             ERROR;
       
  6521         }
       
  6522         
       
  6523     }/*function_string_to_sint*/
       
  6524     break;
       
  6525 
       
  6526 /****
       
  6527  *STRING_TO_LINT
       
  6528  */
       
  6529     case function_string_to_lint :
       
  6530     {
       
  6531         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6532 
       
  6533         {
       
  6534             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6535             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6536             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6537             symbol_c *IN_type_symbol = NULL;
       
  6538             
       
  6539             /* Get the value from a foo(<param_value>) style call */
       
  6540             if (IN_param_value == NULL)
       
  6541               IN_param_value = function_call_param_iterator.next_nf();
       
  6542             if (IN_param_value != NULL) {
       
  6543               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6544               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6545             }
       
  6546             
       
  6547             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6548             {
       
  6549         
       
  6550                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  6551                 return return_type_symbol;
       
  6552                 
       
  6553             }
       
  6554             
       
  6555             
       
  6556             ERROR;
       
  6557         }
       
  6558         
       
  6559     }/*function_string_to_lint*/
       
  6560     break;
       
  6561 
       
  6562 /****
       
  6563  *STRING_TO_DINT
       
  6564  */
       
  6565     case function_string_to_dint :
       
  6566     {
       
  6567         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6568 
       
  6569         {
       
  6570             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6571             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6572             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6573             symbol_c *IN_type_symbol = NULL;
       
  6574             
       
  6575             /* Get the value from a foo(<param_value>) style call */
       
  6576             if (IN_param_value == NULL)
       
  6577               IN_param_value = function_call_param_iterator.next_nf();
       
  6578             if (IN_param_value != NULL) {
       
  6579               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6580               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6581             }
       
  6582             
       
  6583             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6584             {
       
  6585         
       
  6586                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  6587                 return return_type_symbol;
       
  6588                 
       
  6589             }
       
  6590             
       
  6591             
       
  6592             ERROR;
       
  6593         }
       
  6594         
       
  6595     }/*function_string_to_dint*/
       
  6596     break;
       
  6597 
       
  6598 /****
       
  6599  *STRING_TO_DATE
       
  6600  */
       
  6601     case function_string_to_date :
       
  6602     {
       
  6603         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6604 
       
  6605         {
       
  6606             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6607             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6608             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6609             symbol_c *IN_type_symbol = NULL;
       
  6610             
       
  6611             /* Get the value from a foo(<param_value>) style call */
       
  6612             if (IN_param_value == NULL)
       
  6613               IN_param_value = function_call_param_iterator.next_nf();
       
  6614             if (IN_param_value != NULL) {
       
  6615               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6616               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6617             }
       
  6618             
       
  6619             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6620             {
       
  6621         
       
  6622                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  6623                 return return_type_symbol;
       
  6624                 
       
  6625             }
       
  6626             
       
  6627             
       
  6628             ERROR;
       
  6629         }
       
  6630         
       
  6631     }/*function_string_to_date*/
       
  6632     break;
       
  6633 
       
  6634 /****
       
  6635  *STRING_TO_DWORD
       
  6636  */
       
  6637     case function_string_to_dword :
       
  6638     {
       
  6639         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6640 
       
  6641         {
       
  6642             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6643             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6644             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6645             symbol_c *IN_type_symbol = NULL;
       
  6646             
       
  6647             /* Get the value from a foo(<param_value>) style call */
       
  6648             if (IN_param_value == NULL)
       
  6649               IN_param_value = function_call_param_iterator.next_nf();
       
  6650             if (IN_param_value != NULL) {
       
  6651               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6652               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6653             }
       
  6654             
       
  6655             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6656             {
       
  6657         
       
  6658                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  6659                 return return_type_symbol;
       
  6660                 
       
  6661             }
       
  6662             
       
  6663             
       
  6664             ERROR;
       
  6665         }
       
  6666         
       
  6667     }/*function_string_to_dword*/
       
  6668     break;
       
  6669 
       
  6670 /****
       
  6671  *STRING_TO_DT
       
  6672  */
       
  6673     case function_string_to_dt :
       
  6674     {
       
  6675         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6676 
       
  6677         {
       
  6678             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6679             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6680             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6681             symbol_c *IN_type_symbol = NULL;
       
  6682             
       
  6683             /* Get the value from a foo(<param_value>) style call */
       
  6684             if (IN_param_value == NULL)
       
  6685               IN_param_value = function_call_param_iterator.next_nf();
       
  6686             if (IN_param_value != NULL) {
       
  6687               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6688               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6689             }
       
  6690             
       
  6691             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6692             {
       
  6693         
       
  6694                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  6695                 return return_type_symbol;
       
  6696                 
       
  6697             }
       
  6698             
       
  6699             
       
  6700             ERROR;
       
  6701         }
       
  6702         
       
  6703     }/*function_string_to_dt*/
       
  6704     break;
       
  6705 
       
  6706 /****
       
  6707  *STRING_TO_TOD
       
  6708  */
       
  6709     case function_string_to_tod :
       
  6710     {
       
  6711         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6712 
       
  6713         {
       
  6714             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6715             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6716             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6717             symbol_c *IN_type_symbol = NULL;
       
  6718             
       
  6719             /* Get the value from a foo(<param_value>) style call */
       
  6720             if (IN_param_value == NULL)
       
  6721               IN_param_value = function_call_param_iterator.next_nf();
       
  6722             if (IN_param_value != NULL) {
       
  6723               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6724               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6725             }
       
  6726             
       
  6727             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6728             {
       
  6729         
       
  6730                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  6731                 return return_type_symbol;
       
  6732                 
       
  6733             }
       
  6734             
       
  6735             
       
  6736             ERROR;
       
  6737         }
       
  6738         
       
  6739     }/*function_string_to_tod*/
       
  6740     break;
       
  6741 
       
  6742 /****
       
  6743  *STRING_TO_UDINT
       
  6744  */
       
  6745     case function_string_to_udint :
       
  6746     {
       
  6747         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6748 
       
  6749         {
       
  6750             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6751             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6752             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6753             symbol_c *IN_type_symbol = NULL;
       
  6754             
       
  6755             /* Get the value from a foo(<param_value>) style call */
       
  6756             if (IN_param_value == NULL)
       
  6757               IN_param_value = function_call_param_iterator.next_nf();
       
  6758             if (IN_param_value != NULL) {
       
  6759               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6760               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6761             }
       
  6762             
       
  6763             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6764             {
       
  6765         
       
  6766                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  6767                 return return_type_symbol;
       
  6768                 
       
  6769             }
       
  6770             
       
  6771             
       
  6772             ERROR;
       
  6773         }
       
  6774         
       
  6775     }/*function_string_to_udint*/
       
  6776     break;
       
  6777 
       
  6778 /****
       
  6779  *STRING_TO_WORD
       
  6780  */
       
  6781     case function_string_to_word :
       
  6782     {
       
  6783         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6784 
       
  6785         {
       
  6786             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6787             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6788             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6789             symbol_c *IN_type_symbol = NULL;
       
  6790             
       
  6791             /* Get the value from a foo(<param_value>) style call */
       
  6792             if (IN_param_value == NULL)
       
  6793               IN_param_value = function_call_param_iterator.next_nf();
       
  6794             if (IN_param_value != NULL) {
       
  6795               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6796               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6797             }
       
  6798             
       
  6799             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6800             {
       
  6801         
       
  6802                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  6803                 return return_type_symbol;
       
  6804                 
       
  6805             }
       
  6806             
       
  6807             
       
  6808             ERROR;
       
  6809         }
       
  6810         
       
  6811     }/*function_string_to_word*/
       
  6812     break;
       
  6813 
       
  6814 /****
       
  6815  *STRING_TO_LWORD
       
  6816  */
       
  6817     case function_string_to_lword :
       
  6818     {
       
  6819         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6820 
       
  6821         {
       
  6822             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6823             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6824             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6825             symbol_c *IN_type_symbol = NULL;
       
  6826             
       
  6827             /* Get the value from a foo(<param_value>) style call */
       
  6828             if (IN_param_value == NULL)
       
  6829               IN_param_value = function_call_param_iterator.next_nf();
       
  6830             if (IN_param_value != NULL) {
       
  6831               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6832               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6833             }
       
  6834             
       
  6835             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6836             {
       
  6837         
       
  6838                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  6839                 return return_type_symbol;
       
  6840                 
       
  6841             }
       
  6842             
       
  6843             
       
  6844             ERROR;
       
  6845         }
       
  6846         
       
  6847     }/*function_string_to_lword*/
       
  6848     break;
       
  6849 
       
  6850 /****
       
  6851  *STRING_TO_UINT
       
  6852  */
       
  6853     case function_string_to_uint :
       
  6854     {
       
  6855         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6856 
       
  6857         {
       
  6858             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6859             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6860             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6861             symbol_c *IN_type_symbol = NULL;
       
  6862             
       
  6863             /* Get the value from a foo(<param_value>) style call */
       
  6864             if (IN_param_value == NULL)
       
  6865               IN_param_value = function_call_param_iterator.next_nf();
       
  6866             if (IN_param_value != NULL) {
       
  6867               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6868               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6869             }
       
  6870             
       
  6871             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6872             {
       
  6873         
       
  6874                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  6875                 return return_type_symbol;
       
  6876                 
       
  6877             }
       
  6878             
       
  6879             
       
  6880             ERROR;
       
  6881         }
       
  6882         
       
  6883     }/*function_string_to_uint*/
       
  6884     break;
       
  6885 
       
  6886 /****
       
  6887  *STRING_TO_LREAL
       
  6888  */
       
  6889     case function_string_to_lreal :
       
  6890     {
       
  6891         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6892 
       
  6893         {
       
  6894             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6895             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6896             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6897             symbol_c *IN_type_symbol = NULL;
       
  6898             
       
  6899             /* Get the value from a foo(<param_value>) style call */
       
  6900             if (IN_param_value == NULL)
       
  6901               IN_param_value = function_call_param_iterator.next_nf();
       
  6902             if (IN_param_value != NULL) {
       
  6903               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6904               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6905             }
       
  6906             
       
  6907             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6908             {
       
  6909         
       
  6910                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  6911                 return return_type_symbol;
       
  6912                 
       
  6913             }
       
  6914             
       
  6915             
       
  6916             ERROR;
       
  6917         }
       
  6918         
       
  6919     }/*function_string_to_lreal*/
       
  6920     break;
       
  6921 
       
  6922 /****
       
  6923  *STRING_TO_BYTE
       
  6924  */
       
  6925     case function_string_to_byte :
       
  6926     {
       
  6927         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6928 
       
  6929         {
       
  6930             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6931             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6932             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6933             symbol_c *IN_type_symbol = NULL;
       
  6934             
       
  6935             /* Get the value from a foo(<param_value>) style call */
       
  6936             if (IN_param_value == NULL)
       
  6937               IN_param_value = function_call_param_iterator.next_nf();
       
  6938             if (IN_param_value != NULL) {
       
  6939               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6940               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6941             }
       
  6942             
       
  6943             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6944             {
       
  6945         
       
  6946                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  6947                 return return_type_symbol;
       
  6948                 
       
  6949             }
       
  6950             
       
  6951             
       
  6952             ERROR;
       
  6953         }
       
  6954         
       
  6955     }/*function_string_to_byte*/
       
  6956     break;
       
  6957 
       
  6958 /****
       
  6959  *STRING_TO_USINT
       
  6960  */
       
  6961     case function_string_to_usint :
       
  6962     {
       
  6963         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  6964 
       
  6965         {
       
  6966             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  6967             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  6968             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  6969             symbol_c *IN_type_symbol = NULL;
       
  6970             
       
  6971             /* Get the value from a foo(<param_value>) style call */
       
  6972             if (IN_param_value == NULL)
       
  6973               IN_param_value = function_call_param_iterator.next_nf();
       
  6974             if (IN_param_value != NULL) {
       
  6975               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  6976               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  6977             }
       
  6978             
       
  6979             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  6980             {
       
  6981         
       
  6982                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  6983                 return return_type_symbol;
       
  6984                 
       
  6985             }
       
  6986             
       
  6987             
       
  6988             ERROR;
       
  6989         }
       
  6990         
       
  6991     }/*function_string_to_usint*/
       
  6992     break;
       
  6993 
       
  6994 /****
       
  6995  *STRING_TO_ULINT
       
  6996  */
       
  6997     case function_string_to_ulint :
       
  6998     {
       
  6999         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  7000 
       
  7001         {
       
  7002             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7003             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7004             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7005             symbol_c *IN_type_symbol = NULL;
       
  7006             
       
  7007             /* Get the value from a foo(<param_value>) style call */
       
  7008             if (IN_param_value == NULL)
       
  7009               IN_param_value = function_call_param_iterator.next_nf();
       
  7010             if (IN_param_value != NULL) {
       
  7011               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7012               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7013             }
       
  7014             
       
  7015             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  7016             {
       
  7017         
       
  7018                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  7019                 return return_type_symbol;
       
  7020                 
       
  7021             }
       
  7022             
       
  7023             
       
  7024             ERROR;
       
  7025         }
       
  7026         
       
  7027     }/*function_string_to_ulint*/
       
  7028     break;
       
  7029 
       
  7030 /****
       
  7031  *STRING_TO_BOOL
       
  7032  */
       
  7033     case function_string_to_bool :
       
  7034     {
       
  7035         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  7036 
       
  7037         {
       
  7038             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7039             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7040             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7041             symbol_c *IN_type_symbol = NULL;
       
  7042             
       
  7043             /* Get the value from a foo(<param_value>) style call */
       
  7044             if (IN_param_value == NULL)
       
  7045               IN_param_value = function_call_param_iterator.next_nf();
       
  7046             if (IN_param_value != NULL) {
       
  7047               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7048               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7049             }
       
  7050             
       
  7051             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  7052             {
       
  7053         
       
  7054                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  7055                 return return_type_symbol;
       
  7056                 
       
  7057             }
       
  7058             
       
  7059             
       
  7060             ERROR;
       
  7061         }
       
  7062         
       
  7063     }/*function_string_to_bool*/
       
  7064     break;
       
  7065 
       
  7066 /****
       
  7067  *STRING_TO_TIME
       
  7068  */
       
  7069     case function_string_to_time :
       
  7070     {
       
  7071         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  7072 
       
  7073         {
       
  7074             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7075             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7076             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7077             symbol_c *IN_type_symbol = NULL;
       
  7078             
       
  7079             /* Get the value from a foo(<param_value>) style call */
       
  7080             if (IN_param_value == NULL)
       
  7081               IN_param_value = function_call_param_iterator.next_nf();
       
  7082             if (IN_param_value != NULL) {
       
  7083               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7084               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7085             }
       
  7086             
       
  7087             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  7088             {
       
  7089         
       
  7090                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  7091                 return return_type_symbol;
       
  7092                 
       
  7093             }
       
  7094             
       
  7095             
       
  7096             ERROR;
       
  7097         }
       
  7098         
       
  7099     }/*function_string_to_time*/
       
  7100     break;
       
  7101 
       
  7102 /****
       
  7103  *STRING_TO_INT
       
  7104  */
       
  7105     case function_string_to_int :
       
  7106     {
       
  7107         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
  7108 
       
  7109         {
       
  7110             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7111             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7112             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7113             symbol_c *IN_type_symbol = NULL;
       
  7114             
       
  7115             /* Get the value from a foo(<param_value>) style call */
       
  7116             if (IN_param_value == NULL)
       
  7117               IN_param_value = function_call_param_iterator.next_nf();
       
  7118             if (IN_param_value != NULL) {
       
  7119               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7120               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7121             }
       
  7122             
       
  7123             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
  7124             {
       
  7125         
       
  7126                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  7127                 return return_type_symbol;
       
  7128                 
       
  7129             }
       
  7130             
       
  7131             
       
  7132             ERROR;
       
  7133         }
       
  7134         
       
  7135     }/*function_string_to_int*/
       
  7136     break;
       
  7137 
       
  7138 /****
       
  7139  *LWORD_TO_REAL
       
  7140  */
       
  7141     case function_lword_to_real :
       
  7142     {
       
  7143         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7144 
       
  7145         {
       
  7146             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7147             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7148             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7149             symbol_c *IN_type_symbol = NULL;
       
  7150             
       
  7151             /* Get the value from a foo(<param_value>) style call */
       
  7152             if (IN_param_value == NULL)
       
  7153               IN_param_value = function_call_param_iterator.next_nf();
       
  7154             if (IN_param_value != NULL) {
       
  7155               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7156               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7157             }
       
  7158             
       
  7159             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7160             {
       
  7161         
       
  7162                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  7163                 return return_type_symbol;
       
  7164                 
       
  7165             }
       
  7166             
       
  7167             
       
  7168             ERROR;
       
  7169         }
       
  7170         
       
  7171     }/*function_lword_to_real*/
       
  7172     break;
       
  7173 
       
  7174 /****
       
  7175  *LWORD_TO_SINT
       
  7176  */
       
  7177     case function_lword_to_sint :
       
  7178     {
       
  7179         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7180 
       
  7181         {
       
  7182             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7183             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7184             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7185             symbol_c *IN_type_symbol = NULL;
       
  7186             
       
  7187             /* Get the value from a foo(<param_value>) style call */
       
  7188             if (IN_param_value == NULL)
       
  7189               IN_param_value = function_call_param_iterator.next_nf();
       
  7190             if (IN_param_value != NULL) {
       
  7191               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7192               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7193             }
       
  7194             
       
  7195             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7196             {
       
  7197         
       
  7198                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  7199                 return return_type_symbol;
       
  7200                 
       
  7201             }
       
  7202             
       
  7203             
       
  7204             ERROR;
       
  7205         }
       
  7206         
       
  7207     }/*function_lword_to_sint*/
       
  7208     break;
       
  7209 
       
  7210 /****
       
  7211  *LWORD_TO_LINT
       
  7212  */
       
  7213     case function_lword_to_lint :
       
  7214     {
       
  7215         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7216 
       
  7217         {
       
  7218             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7219             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7220             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7221             symbol_c *IN_type_symbol = NULL;
       
  7222             
       
  7223             /* Get the value from a foo(<param_value>) style call */
       
  7224             if (IN_param_value == NULL)
       
  7225               IN_param_value = function_call_param_iterator.next_nf();
       
  7226             if (IN_param_value != NULL) {
       
  7227               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7228               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7229             }
       
  7230             
       
  7231             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7232             {
       
  7233         
       
  7234                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  7235                 return return_type_symbol;
       
  7236                 
       
  7237             }
       
  7238             
       
  7239             
       
  7240             ERROR;
       
  7241         }
       
  7242         
       
  7243     }/*function_lword_to_lint*/
       
  7244     break;
       
  7245 
       
  7246 /****
       
  7247  *LWORD_TO_DINT
       
  7248  */
       
  7249     case function_lword_to_dint :
       
  7250     {
       
  7251         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7252 
       
  7253         {
       
  7254             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7255             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7256             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7257             symbol_c *IN_type_symbol = NULL;
       
  7258             
       
  7259             /* Get the value from a foo(<param_value>) style call */
       
  7260             if (IN_param_value == NULL)
       
  7261               IN_param_value = function_call_param_iterator.next_nf();
       
  7262             if (IN_param_value != NULL) {
       
  7263               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7264               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7265             }
       
  7266             
       
  7267             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7268             {
       
  7269         
       
  7270                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  7271                 return return_type_symbol;
       
  7272                 
       
  7273             }
       
  7274             
       
  7275             
       
  7276             ERROR;
       
  7277         }
       
  7278         
       
  7279     }/*function_lword_to_dint*/
       
  7280     break;
       
  7281 
       
  7282 /****
       
  7283  *LWORD_TO_DATE
       
  7284  */
       
  7285     case function_lword_to_date :
       
  7286     {
       
  7287         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7288 
       
  7289         {
       
  7290             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7291             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7292             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7293             symbol_c *IN_type_symbol = NULL;
       
  7294             
       
  7295             /* Get the value from a foo(<param_value>) style call */
       
  7296             if (IN_param_value == NULL)
       
  7297               IN_param_value = function_call_param_iterator.next_nf();
       
  7298             if (IN_param_value != NULL) {
       
  7299               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7300               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7301             }
       
  7302             
       
  7303             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7304             {
       
  7305         
       
  7306                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  7307                 return return_type_symbol;
       
  7308                 
       
  7309             }
       
  7310             
       
  7311             
       
  7312             ERROR;
       
  7313         }
       
  7314         
       
  7315     }/*function_lword_to_date*/
       
  7316     break;
       
  7317 
       
  7318 /****
       
  7319  *LWORD_TO_DWORD
       
  7320  */
       
  7321     case function_lword_to_dword :
       
  7322     {
       
  7323         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7324 
       
  7325         {
       
  7326             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7327             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7328             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7329             symbol_c *IN_type_symbol = NULL;
       
  7330             
       
  7331             /* Get the value from a foo(<param_value>) style call */
       
  7332             if (IN_param_value == NULL)
       
  7333               IN_param_value = function_call_param_iterator.next_nf();
       
  7334             if (IN_param_value != NULL) {
       
  7335               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7336               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7337             }
       
  7338             
       
  7339             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7340             {
       
  7341         
       
  7342                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  7343                 return return_type_symbol;
       
  7344                 
       
  7345             }
       
  7346             
       
  7347             
       
  7348             ERROR;
       
  7349         }
       
  7350         
       
  7351     }/*function_lword_to_dword*/
       
  7352     break;
       
  7353 
       
  7354 /****
       
  7355  *LWORD_TO_DT
       
  7356  */
       
  7357     case function_lword_to_dt :
       
  7358     {
       
  7359         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7360 
       
  7361         {
       
  7362             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7363             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7364             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7365             symbol_c *IN_type_symbol = NULL;
       
  7366             
       
  7367             /* Get the value from a foo(<param_value>) style call */
       
  7368             if (IN_param_value == NULL)
       
  7369               IN_param_value = function_call_param_iterator.next_nf();
       
  7370             if (IN_param_value != NULL) {
       
  7371               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7372               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7373             }
       
  7374             
       
  7375             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7376             {
       
  7377         
       
  7378                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  7379                 return return_type_symbol;
       
  7380                 
       
  7381             }
       
  7382             
       
  7383             
       
  7384             ERROR;
       
  7385         }
       
  7386         
       
  7387     }/*function_lword_to_dt*/
       
  7388     break;
       
  7389 
       
  7390 /****
       
  7391  *LWORD_TO_TOD
       
  7392  */
       
  7393     case function_lword_to_tod :
       
  7394     {
       
  7395         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7396 
       
  7397         {
       
  7398             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7399             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7400             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7401             symbol_c *IN_type_symbol = NULL;
       
  7402             
       
  7403             /* Get the value from a foo(<param_value>) style call */
       
  7404             if (IN_param_value == NULL)
       
  7405               IN_param_value = function_call_param_iterator.next_nf();
       
  7406             if (IN_param_value != NULL) {
       
  7407               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7408               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7409             }
       
  7410             
       
  7411             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7412             {
       
  7413         
       
  7414                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  7415                 return return_type_symbol;
       
  7416                 
       
  7417             }
       
  7418             
       
  7419             
       
  7420             ERROR;
       
  7421         }
       
  7422         
       
  7423     }/*function_lword_to_tod*/
       
  7424     break;
       
  7425 
       
  7426 /****
       
  7427  *LWORD_TO_UDINT
       
  7428  */
       
  7429     case function_lword_to_udint :
       
  7430     {
       
  7431         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7432 
       
  7433         {
       
  7434             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7435             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7436             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7437             symbol_c *IN_type_symbol = NULL;
       
  7438             
       
  7439             /* Get the value from a foo(<param_value>) style call */
       
  7440             if (IN_param_value == NULL)
       
  7441               IN_param_value = function_call_param_iterator.next_nf();
       
  7442             if (IN_param_value != NULL) {
       
  7443               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7444               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7445             }
       
  7446             
       
  7447             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7448             {
       
  7449         
       
  7450                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  7451                 return return_type_symbol;
       
  7452                 
       
  7453             }
       
  7454             
       
  7455             
       
  7456             ERROR;
       
  7457         }
       
  7458         
       
  7459     }/*function_lword_to_udint*/
       
  7460     break;
       
  7461 
       
  7462 /****
       
  7463  *LWORD_TO_WORD
       
  7464  */
       
  7465     case function_lword_to_word :
       
  7466     {
       
  7467         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7468 
       
  7469         {
       
  7470             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7471             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7472             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7473             symbol_c *IN_type_symbol = NULL;
       
  7474             
       
  7475             /* Get the value from a foo(<param_value>) style call */
       
  7476             if (IN_param_value == NULL)
       
  7477               IN_param_value = function_call_param_iterator.next_nf();
       
  7478             if (IN_param_value != NULL) {
       
  7479               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7480               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7481             }
       
  7482             
       
  7483             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7484             {
       
  7485         
       
  7486                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  7487                 return return_type_symbol;
       
  7488                 
       
  7489             }
       
  7490             
       
  7491             
       
  7492             ERROR;
       
  7493         }
       
  7494         
       
  7495     }/*function_lword_to_word*/
       
  7496     break;
       
  7497 
       
  7498 /****
       
  7499  *LWORD_TO_STRING
       
  7500  */
       
  7501     case function_lword_to_string :
       
  7502     {
       
  7503         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7504 
       
  7505         {
       
  7506             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7507             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7508             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7509             symbol_c *IN_type_symbol = NULL;
       
  7510             
       
  7511             /* Get the value from a foo(<param_value>) style call */
       
  7512             if (IN_param_value == NULL)
       
  7513               IN_param_value = function_call_param_iterator.next_nf();
       
  7514             if (IN_param_value != NULL) {
       
  7515               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7516               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7517             }
       
  7518             
       
  7519             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7520             {
       
  7521         
       
  7522                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  7523                 return return_type_symbol;
       
  7524                 
       
  7525             }
       
  7526             
       
  7527             
       
  7528             ERROR;
       
  7529         }
       
  7530         
       
  7531     }/*function_lword_to_string*/
       
  7532     break;
       
  7533 
       
  7534 /****
       
  7535  *LWORD_TO_UINT
       
  7536  */
       
  7537     case function_lword_to_uint :
       
  7538     {
       
  7539         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7540 
       
  7541         {
       
  7542             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7543             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7544             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7545             symbol_c *IN_type_symbol = NULL;
       
  7546             
       
  7547             /* Get the value from a foo(<param_value>) style call */
       
  7548             if (IN_param_value == NULL)
       
  7549               IN_param_value = function_call_param_iterator.next_nf();
       
  7550             if (IN_param_value != NULL) {
       
  7551               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7552               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7553             }
       
  7554             
       
  7555             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7556             {
       
  7557         
       
  7558                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  7559                 return return_type_symbol;
       
  7560                 
       
  7561             }
       
  7562             
       
  7563             
       
  7564             ERROR;
       
  7565         }
       
  7566         
       
  7567     }/*function_lword_to_uint*/
       
  7568     break;
       
  7569 
       
  7570 /****
       
  7571  *LWORD_TO_LREAL
       
  7572  */
       
  7573     case function_lword_to_lreal :
       
  7574     {
       
  7575         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7576 
       
  7577         {
       
  7578             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7579             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7580             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7581             symbol_c *IN_type_symbol = NULL;
       
  7582             
       
  7583             /* Get the value from a foo(<param_value>) style call */
       
  7584             if (IN_param_value == NULL)
       
  7585               IN_param_value = function_call_param_iterator.next_nf();
       
  7586             if (IN_param_value != NULL) {
       
  7587               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7588               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7589             }
       
  7590             
       
  7591             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7592             {
       
  7593         
       
  7594                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  7595                 return return_type_symbol;
       
  7596                 
       
  7597             }
       
  7598             
       
  7599             
       
  7600             ERROR;
       
  7601         }
       
  7602         
       
  7603     }/*function_lword_to_lreal*/
       
  7604     break;
       
  7605 
       
  7606 /****
       
  7607  *LWORD_TO_BYTE
       
  7608  */
       
  7609     case function_lword_to_byte :
       
  7610     {
       
  7611         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7612 
       
  7613         {
       
  7614             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7615             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7616             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7617             symbol_c *IN_type_symbol = NULL;
       
  7618             
       
  7619             /* Get the value from a foo(<param_value>) style call */
       
  7620             if (IN_param_value == NULL)
       
  7621               IN_param_value = function_call_param_iterator.next_nf();
       
  7622             if (IN_param_value != NULL) {
       
  7623               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7624               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7625             }
       
  7626             
       
  7627             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7628             {
       
  7629         
       
  7630                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  7631                 return return_type_symbol;
       
  7632                 
       
  7633             }
       
  7634             
       
  7635             
       
  7636             ERROR;
       
  7637         }
       
  7638         
       
  7639     }/*function_lword_to_byte*/
       
  7640     break;
       
  7641 
       
  7642 /****
       
  7643  *LWORD_TO_USINT
       
  7644  */
       
  7645     case function_lword_to_usint :
       
  7646     {
       
  7647         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7648 
       
  7649         {
       
  7650             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7651             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7652             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7653             symbol_c *IN_type_symbol = NULL;
       
  7654             
       
  7655             /* Get the value from a foo(<param_value>) style call */
       
  7656             if (IN_param_value == NULL)
       
  7657               IN_param_value = function_call_param_iterator.next_nf();
       
  7658             if (IN_param_value != NULL) {
       
  7659               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7660               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7661             }
       
  7662             
       
  7663             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7664             {
       
  7665         
       
  7666                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  7667                 return return_type_symbol;
       
  7668                 
       
  7669             }
       
  7670             
       
  7671             
       
  7672             ERROR;
       
  7673         }
       
  7674         
       
  7675     }/*function_lword_to_usint*/
       
  7676     break;
       
  7677 
       
  7678 /****
       
  7679  *LWORD_TO_ULINT
       
  7680  */
       
  7681     case function_lword_to_ulint :
       
  7682     {
       
  7683         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7684 
       
  7685         {
       
  7686             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7687             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7688             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7689             symbol_c *IN_type_symbol = NULL;
       
  7690             
       
  7691             /* Get the value from a foo(<param_value>) style call */
       
  7692             if (IN_param_value == NULL)
       
  7693               IN_param_value = function_call_param_iterator.next_nf();
       
  7694             if (IN_param_value != NULL) {
       
  7695               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7696               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7697             }
       
  7698             
       
  7699             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7700             {
       
  7701         
       
  7702                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  7703                 return return_type_symbol;
       
  7704                 
       
  7705             }
       
  7706             
       
  7707             
       
  7708             ERROR;
       
  7709         }
       
  7710         
       
  7711     }/*function_lword_to_ulint*/
       
  7712     break;
       
  7713 
       
  7714 /****
       
  7715  *LWORD_TO_BOOL
       
  7716  */
       
  7717     case function_lword_to_bool :
       
  7718     {
       
  7719         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7720 
       
  7721         {
       
  7722             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7723             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7724             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7725             symbol_c *IN_type_symbol = NULL;
       
  7726             
       
  7727             /* Get the value from a foo(<param_value>) style call */
       
  7728             if (IN_param_value == NULL)
       
  7729               IN_param_value = function_call_param_iterator.next_nf();
       
  7730             if (IN_param_value != NULL) {
       
  7731               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7732               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7733             }
       
  7734             
       
  7735             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7736             {
       
  7737         
       
  7738                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  7739                 return return_type_symbol;
       
  7740                 
       
  7741             }
       
  7742             
       
  7743             
       
  7744             ERROR;
       
  7745         }
       
  7746         
       
  7747     }/*function_lword_to_bool*/
       
  7748     break;
       
  7749 
       
  7750 /****
       
  7751  *LWORD_TO_TIME
       
  7752  */
       
  7753     case function_lword_to_time :
       
  7754     {
       
  7755         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7756 
       
  7757         {
       
  7758             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7759             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7760             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7761             symbol_c *IN_type_symbol = NULL;
       
  7762             
       
  7763             /* Get the value from a foo(<param_value>) style call */
       
  7764             if (IN_param_value == NULL)
       
  7765               IN_param_value = function_call_param_iterator.next_nf();
       
  7766             if (IN_param_value != NULL) {
       
  7767               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7768               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7769             }
       
  7770             
       
  7771             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7772             {
       
  7773         
       
  7774                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  7775                 return return_type_symbol;
       
  7776                 
       
  7777             }
       
  7778             
       
  7779             
       
  7780             ERROR;
       
  7781         }
       
  7782         
       
  7783     }/*function_lword_to_time*/
       
  7784     break;
       
  7785 
       
  7786 /****
       
  7787  *LWORD_TO_INT
       
  7788  */
       
  7789     case function_lword_to_int :
       
  7790     {
       
  7791         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
  7792 
       
  7793         {
       
  7794             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7795             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7796             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7797             symbol_c *IN_type_symbol = NULL;
       
  7798             
       
  7799             /* Get the value from a foo(<param_value>) style call */
       
  7800             if (IN_param_value == NULL)
       
  7801               IN_param_value = function_call_param_iterator.next_nf();
       
  7802             if (IN_param_value != NULL) {
       
  7803               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7804               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7805             }
       
  7806             
       
  7807             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
  7808             {
       
  7809         
       
  7810                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  7811                 return return_type_symbol;
       
  7812                 
       
  7813             }
       
  7814             
       
  7815             
       
  7816             ERROR;
       
  7817         }
       
  7818         
       
  7819     }/*function_lword_to_int*/
       
  7820     break;
       
  7821 
       
  7822 /****
       
  7823  *UINT_TO_REAL
       
  7824  */
       
  7825     case function_uint_to_real :
       
  7826     {
       
  7827         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  7828 
       
  7829         {
       
  7830             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7831             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7832             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7833             symbol_c *IN_type_symbol = NULL;
       
  7834             
       
  7835             /* Get the value from a foo(<param_value>) style call */
       
  7836             if (IN_param_value == NULL)
       
  7837               IN_param_value = function_call_param_iterator.next_nf();
       
  7838             if (IN_param_value != NULL) {
       
  7839               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7840               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7841             }
       
  7842             
       
  7843             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  7844             {
       
  7845         
       
  7846                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  7847                 return return_type_symbol;
       
  7848                 
       
  7849             }
       
  7850             
       
  7851             
       
  7852             ERROR;
       
  7853         }
       
  7854         
       
  7855     }/*function_uint_to_real*/
       
  7856     break;
       
  7857 
       
  7858 /****
       
  7859  *UINT_TO_SINT
       
  7860  */
       
  7861     case function_uint_to_sint :
       
  7862     {
       
  7863         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  7864 
       
  7865         {
       
  7866             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7867             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7868             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7869             symbol_c *IN_type_symbol = NULL;
       
  7870             
       
  7871             /* Get the value from a foo(<param_value>) style call */
       
  7872             if (IN_param_value == NULL)
       
  7873               IN_param_value = function_call_param_iterator.next_nf();
       
  7874             if (IN_param_value != NULL) {
       
  7875               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7876               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7877             }
       
  7878             
       
  7879             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  7880             {
       
  7881         
       
  7882                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  7883                 return return_type_symbol;
       
  7884                 
       
  7885             }
       
  7886             
       
  7887             
       
  7888             ERROR;
       
  7889         }
       
  7890         
       
  7891     }/*function_uint_to_sint*/
       
  7892     break;
       
  7893 
       
  7894 /****
       
  7895  *UINT_TO_LINT
       
  7896  */
       
  7897     case function_uint_to_lint :
       
  7898     {
       
  7899         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  7900 
       
  7901         {
       
  7902             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7903             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7904             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7905             symbol_c *IN_type_symbol = NULL;
       
  7906             
       
  7907             /* Get the value from a foo(<param_value>) style call */
       
  7908             if (IN_param_value == NULL)
       
  7909               IN_param_value = function_call_param_iterator.next_nf();
       
  7910             if (IN_param_value != NULL) {
       
  7911               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7912               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7913             }
       
  7914             
       
  7915             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  7916             {
       
  7917         
       
  7918                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  7919                 return return_type_symbol;
       
  7920                 
       
  7921             }
       
  7922             
       
  7923             
       
  7924             ERROR;
       
  7925         }
       
  7926         
       
  7927     }/*function_uint_to_lint*/
       
  7928     break;
       
  7929 
       
  7930 /****
       
  7931  *UINT_TO_DINT
       
  7932  */
       
  7933     case function_uint_to_dint :
       
  7934     {
       
  7935         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  7936 
       
  7937         {
       
  7938             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7939             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7940             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7941             symbol_c *IN_type_symbol = NULL;
       
  7942             
       
  7943             /* Get the value from a foo(<param_value>) style call */
       
  7944             if (IN_param_value == NULL)
       
  7945               IN_param_value = function_call_param_iterator.next_nf();
       
  7946             if (IN_param_value != NULL) {
       
  7947               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7948               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7949             }
       
  7950             
       
  7951             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  7952             {
       
  7953         
       
  7954                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  7955                 return return_type_symbol;
       
  7956                 
       
  7957             }
       
  7958             
       
  7959             
       
  7960             ERROR;
       
  7961         }
       
  7962         
       
  7963     }/*function_uint_to_dint*/
       
  7964     break;
       
  7965 
       
  7966 /****
       
  7967  *UINT_TO_DATE
       
  7968  */
       
  7969     case function_uint_to_date :
       
  7970     {
       
  7971         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  7972 
       
  7973         {
       
  7974             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  7975             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  7976             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  7977             symbol_c *IN_type_symbol = NULL;
       
  7978             
       
  7979             /* Get the value from a foo(<param_value>) style call */
       
  7980             if (IN_param_value == NULL)
       
  7981               IN_param_value = function_call_param_iterator.next_nf();
       
  7982             if (IN_param_value != NULL) {
       
  7983               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  7984               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  7985             }
       
  7986             
       
  7987             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  7988             {
       
  7989         
       
  7990                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  7991                 return return_type_symbol;
       
  7992                 
       
  7993             }
       
  7994             
       
  7995             
       
  7996             ERROR;
       
  7997         }
       
  7998         
       
  7999     }/*function_uint_to_date*/
       
  8000     break;
       
  8001 
       
  8002 /****
       
  8003  *UINT_TO_DWORD
       
  8004  */
       
  8005     case function_uint_to_dword :
       
  8006     {
       
  8007         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8008 
       
  8009         {
       
  8010             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8011             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8012             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8013             symbol_c *IN_type_symbol = NULL;
       
  8014             
       
  8015             /* Get the value from a foo(<param_value>) style call */
       
  8016             if (IN_param_value == NULL)
       
  8017               IN_param_value = function_call_param_iterator.next_nf();
       
  8018             if (IN_param_value != NULL) {
       
  8019               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8020               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8021             }
       
  8022             
       
  8023             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8024             {
       
  8025         
       
  8026                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  8027                 return return_type_symbol;
       
  8028                 
       
  8029             }
       
  8030             
       
  8031             
       
  8032             ERROR;
       
  8033         }
       
  8034         
       
  8035     }/*function_uint_to_dword*/
       
  8036     break;
       
  8037 
       
  8038 /****
       
  8039  *UINT_TO_DT
       
  8040  */
       
  8041     case function_uint_to_dt :
       
  8042     {
       
  8043         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8044 
       
  8045         {
       
  8046             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8047             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8048             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8049             symbol_c *IN_type_symbol = NULL;
       
  8050             
       
  8051             /* Get the value from a foo(<param_value>) style call */
       
  8052             if (IN_param_value == NULL)
       
  8053               IN_param_value = function_call_param_iterator.next_nf();
       
  8054             if (IN_param_value != NULL) {
       
  8055               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8056               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8057             }
       
  8058             
       
  8059             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8060             {
       
  8061         
       
  8062                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  8063                 return return_type_symbol;
       
  8064                 
       
  8065             }
       
  8066             
       
  8067             
       
  8068             ERROR;
       
  8069         }
       
  8070         
       
  8071     }/*function_uint_to_dt*/
       
  8072     break;
       
  8073 
       
  8074 /****
       
  8075  *UINT_TO_TOD
       
  8076  */
       
  8077     case function_uint_to_tod :
       
  8078     {
       
  8079         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8080 
       
  8081         {
       
  8082             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8083             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8084             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8085             symbol_c *IN_type_symbol = NULL;
       
  8086             
       
  8087             /* Get the value from a foo(<param_value>) style call */
       
  8088             if (IN_param_value == NULL)
       
  8089               IN_param_value = function_call_param_iterator.next_nf();
       
  8090             if (IN_param_value != NULL) {
       
  8091               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8092               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8093             }
       
  8094             
       
  8095             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8096             {
       
  8097         
       
  8098                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  8099                 return return_type_symbol;
       
  8100                 
       
  8101             }
       
  8102             
       
  8103             
       
  8104             ERROR;
       
  8105         }
       
  8106         
       
  8107     }/*function_uint_to_tod*/
       
  8108     break;
       
  8109 
       
  8110 /****
       
  8111  *UINT_TO_UDINT
       
  8112  */
       
  8113     case function_uint_to_udint :
       
  8114     {
       
  8115         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8116 
       
  8117         {
       
  8118             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8119             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8120             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8121             symbol_c *IN_type_symbol = NULL;
       
  8122             
       
  8123             /* Get the value from a foo(<param_value>) style call */
       
  8124             if (IN_param_value == NULL)
       
  8125               IN_param_value = function_call_param_iterator.next_nf();
       
  8126             if (IN_param_value != NULL) {
       
  8127               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8128               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8129             }
       
  8130             
       
  8131             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8132             {
       
  8133         
       
  8134                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  8135                 return return_type_symbol;
       
  8136                 
       
  8137             }
       
  8138             
       
  8139             
       
  8140             ERROR;
       
  8141         }
       
  8142         
       
  8143     }/*function_uint_to_udint*/
       
  8144     break;
       
  8145 
       
  8146 /****
       
  8147  *UINT_TO_WORD
       
  8148  */
       
  8149     case function_uint_to_word :
       
  8150     {
       
  8151         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8152 
       
  8153         {
       
  8154             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8155             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8156             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8157             symbol_c *IN_type_symbol = NULL;
       
  8158             
       
  8159             /* Get the value from a foo(<param_value>) style call */
       
  8160             if (IN_param_value == NULL)
       
  8161               IN_param_value = function_call_param_iterator.next_nf();
       
  8162             if (IN_param_value != NULL) {
       
  8163               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8164               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8165             }
       
  8166             
       
  8167             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8168             {
       
  8169         
       
  8170                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  8171                 return return_type_symbol;
       
  8172                 
       
  8173             }
       
  8174             
       
  8175             
       
  8176             ERROR;
       
  8177         }
       
  8178         
       
  8179     }/*function_uint_to_word*/
       
  8180     break;
       
  8181 
       
  8182 /****
       
  8183  *UINT_TO_STRING
       
  8184  */
       
  8185     case function_uint_to_string :
       
  8186     {
       
  8187         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8188 
       
  8189         {
       
  8190             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8191             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8192             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8193             symbol_c *IN_type_symbol = NULL;
       
  8194             
       
  8195             /* Get the value from a foo(<param_value>) style call */
       
  8196             if (IN_param_value == NULL)
       
  8197               IN_param_value = function_call_param_iterator.next_nf();
       
  8198             if (IN_param_value != NULL) {
       
  8199               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8200               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8201             }
       
  8202             
       
  8203             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8204             {
       
  8205         
       
  8206                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  8207                 return return_type_symbol;
       
  8208                 
       
  8209             }
       
  8210             
       
  8211             
       
  8212             ERROR;
       
  8213         }
       
  8214         
       
  8215     }/*function_uint_to_string*/
       
  8216     break;
       
  8217 
       
  8218 /****
       
  8219  *UINT_TO_LWORD
       
  8220  */
       
  8221     case function_uint_to_lword :
       
  8222     {
       
  8223         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8224 
       
  8225         {
       
  8226             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8227             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8228             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8229             symbol_c *IN_type_symbol = NULL;
       
  8230             
       
  8231             /* Get the value from a foo(<param_value>) style call */
       
  8232             if (IN_param_value == NULL)
       
  8233               IN_param_value = function_call_param_iterator.next_nf();
       
  8234             if (IN_param_value != NULL) {
       
  8235               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8236               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8237             }
       
  8238             
       
  8239             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8240             {
       
  8241         
       
  8242                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  8243                 return return_type_symbol;
       
  8244                 
       
  8245             }
       
  8246             
       
  8247             
       
  8248             ERROR;
       
  8249         }
       
  8250         
       
  8251     }/*function_uint_to_lword*/
       
  8252     break;
       
  8253 
       
  8254 /****
       
  8255  *UINT_TO_LREAL
       
  8256  */
       
  8257     case function_uint_to_lreal :
       
  8258     {
       
  8259         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8260 
       
  8261         {
       
  8262             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8263             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8264             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8265             symbol_c *IN_type_symbol = NULL;
       
  8266             
       
  8267             /* Get the value from a foo(<param_value>) style call */
       
  8268             if (IN_param_value == NULL)
       
  8269               IN_param_value = function_call_param_iterator.next_nf();
       
  8270             if (IN_param_value != NULL) {
       
  8271               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8272               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8273             }
       
  8274             
       
  8275             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8276             {
       
  8277         
       
  8278                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8279                 return return_type_symbol;
       
  8280                 
       
  8281             }
       
  8282             
       
  8283             
       
  8284             ERROR;
       
  8285         }
       
  8286         
       
  8287     }/*function_uint_to_lreal*/
       
  8288     break;
       
  8289 
       
  8290 /****
       
  8291  *UINT_TO_BYTE
       
  8292  */
       
  8293     case function_uint_to_byte :
       
  8294     {
       
  8295         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8296 
       
  8297         {
       
  8298             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8299             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8300             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8301             symbol_c *IN_type_symbol = NULL;
       
  8302             
       
  8303             /* Get the value from a foo(<param_value>) style call */
       
  8304             if (IN_param_value == NULL)
       
  8305               IN_param_value = function_call_param_iterator.next_nf();
       
  8306             if (IN_param_value != NULL) {
       
  8307               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8308               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8309             }
       
  8310             
       
  8311             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8312             {
       
  8313         
       
  8314                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  8315                 return return_type_symbol;
       
  8316                 
       
  8317             }
       
  8318             
       
  8319             
       
  8320             ERROR;
       
  8321         }
       
  8322         
       
  8323     }/*function_uint_to_byte*/
       
  8324     break;
       
  8325 
       
  8326 /****
       
  8327  *UINT_TO_USINT
       
  8328  */
       
  8329     case function_uint_to_usint :
       
  8330     {
       
  8331         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8332 
       
  8333         {
       
  8334             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8335             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8336             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8337             symbol_c *IN_type_symbol = NULL;
       
  8338             
       
  8339             /* Get the value from a foo(<param_value>) style call */
       
  8340             if (IN_param_value == NULL)
       
  8341               IN_param_value = function_call_param_iterator.next_nf();
       
  8342             if (IN_param_value != NULL) {
       
  8343               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8344               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8345             }
       
  8346             
       
  8347             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8348             {
       
  8349         
       
  8350                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  8351                 return return_type_symbol;
       
  8352                 
       
  8353             }
       
  8354             
       
  8355             
       
  8356             ERROR;
       
  8357         }
       
  8358         
       
  8359     }/*function_uint_to_usint*/
       
  8360     break;
       
  8361 
       
  8362 /****
       
  8363  *UINT_TO_ULINT
       
  8364  */
       
  8365     case function_uint_to_ulint :
       
  8366     {
       
  8367         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8368 
       
  8369         {
       
  8370             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8371             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8372             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8373             symbol_c *IN_type_symbol = NULL;
       
  8374             
       
  8375             /* Get the value from a foo(<param_value>) style call */
       
  8376             if (IN_param_value == NULL)
       
  8377               IN_param_value = function_call_param_iterator.next_nf();
       
  8378             if (IN_param_value != NULL) {
       
  8379               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8380               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8381             }
       
  8382             
       
  8383             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8384             {
       
  8385         
       
  8386                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  8387                 return return_type_symbol;
       
  8388                 
       
  8389             }
       
  8390             
       
  8391             
       
  8392             ERROR;
       
  8393         }
       
  8394         
       
  8395     }/*function_uint_to_ulint*/
       
  8396     break;
       
  8397 
       
  8398 /****
       
  8399  *UINT_TO_BOOL
       
  8400  */
       
  8401     case function_uint_to_bool :
       
  8402     {
       
  8403         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8404 
       
  8405         {
       
  8406             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8407             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8408             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8409             symbol_c *IN_type_symbol = NULL;
       
  8410             
       
  8411             /* Get the value from a foo(<param_value>) style call */
       
  8412             if (IN_param_value == NULL)
       
  8413               IN_param_value = function_call_param_iterator.next_nf();
       
  8414             if (IN_param_value != NULL) {
       
  8415               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8416               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8417             }
       
  8418             
       
  8419             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8420             {
       
  8421         
       
  8422                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  8423                 return return_type_symbol;
       
  8424                 
       
  8425             }
       
  8426             
       
  8427             
       
  8428             ERROR;
       
  8429         }
       
  8430         
       
  8431     }/*function_uint_to_bool*/
       
  8432     break;
       
  8433 
       
  8434 /****
       
  8435  *UINT_TO_TIME
       
  8436  */
       
  8437     case function_uint_to_time :
       
  8438     {
       
  8439         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8440 
       
  8441         {
       
  8442             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8443             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8444             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8445             symbol_c *IN_type_symbol = NULL;
       
  8446             
       
  8447             /* Get the value from a foo(<param_value>) style call */
       
  8448             if (IN_param_value == NULL)
       
  8449               IN_param_value = function_call_param_iterator.next_nf();
       
  8450             if (IN_param_value != NULL) {
       
  8451               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8452               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8453             }
       
  8454             
       
  8455             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8456             {
       
  8457         
       
  8458                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  8459                 return return_type_symbol;
       
  8460                 
       
  8461             }
       
  8462             
       
  8463             
       
  8464             ERROR;
       
  8465         }
       
  8466         
       
  8467     }/*function_uint_to_time*/
       
  8468     break;
       
  8469 
       
  8470 /****
       
  8471  *UINT_TO_INT
       
  8472  */
       
  8473     case function_uint_to_int :
       
  8474     {
       
  8475         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
  8476 
       
  8477         {
       
  8478             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8479             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8480             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8481             symbol_c *IN_type_symbol = NULL;
       
  8482             
       
  8483             /* Get the value from a foo(<param_value>) style call */
       
  8484             if (IN_param_value == NULL)
       
  8485               IN_param_value = function_call_param_iterator.next_nf();
       
  8486             if (IN_param_value != NULL) {
       
  8487               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8488               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8489             }
       
  8490             
       
  8491             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
  8492             {
       
  8493         
       
  8494                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  8495                 return return_type_symbol;
       
  8496                 
       
  8497             }
       
  8498             
       
  8499             
       
  8500             ERROR;
       
  8501         }
       
  8502         
       
  8503     }/*function_uint_to_int*/
       
  8504     break;
       
  8505 
       
  8506 /****
       
  8507  *LREAL_TO_REAL
       
  8508  */
       
  8509     case function_lreal_to_real :
       
  8510     {
       
  8511         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8512 
       
  8513         {
       
  8514             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8515             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8516             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8517             symbol_c *IN_type_symbol = NULL;
       
  8518             
       
  8519             /* Get the value from a foo(<param_value>) style call */
       
  8520             if (IN_param_value == NULL)
       
  8521               IN_param_value = function_call_param_iterator.next_nf();
       
  8522             if (IN_param_value != NULL) {
       
  8523               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8524               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8525             }
       
  8526             
       
  8527             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8528             {
       
  8529         
       
  8530                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  8531                 return return_type_symbol;
       
  8532                 
       
  8533             }
       
  8534             
       
  8535             
       
  8536             ERROR;
       
  8537         }
       
  8538         
       
  8539     }/*function_lreal_to_real*/
       
  8540     break;
       
  8541 
       
  8542 /****
       
  8543  *LREAL_TO_SINT
       
  8544  */
       
  8545     case function_lreal_to_sint :
       
  8546     {
       
  8547         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8548 
       
  8549         {
       
  8550             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8551             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8552             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8553             symbol_c *IN_type_symbol = NULL;
       
  8554             
       
  8555             /* Get the value from a foo(<param_value>) style call */
       
  8556             if (IN_param_value == NULL)
       
  8557               IN_param_value = function_call_param_iterator.next_nf();
       
  8558             if (IN_param_value != NULL) {
       
  8559               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8560               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8561             }
       
  8562             
       
  8563             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8564             {
       
  8565         
       
  8566                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  8567                 return return_type_symbol;
       
  8568                 
       
  8569             }
       
  8570             
       
  8571             
       
  8572             ERROR;
       
  8573         }
       
  8574         
       
  8575     }/*function_lreal_to_sint*/
       
  8576     break;
       
  8577 
       
  8578 /****
       
  8579  *LREAL_TO_LINT
       
  8580  */
       
  8581     case function_lreal_to_lint :
       
  8582     {
       
  8583         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8584 
       
  8585         {
       
  8586             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8587             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8588             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8589             symbol_c *IN_type_symbol = NULL;
       
  8590             
       
  8591             /* Get the value from a foo(<param_value>) style call */
       
  8592             if (IN_param_value == NULL)
       
  8593               IN_param_value = function_call_param_iterator.next_nf();
       
  8594             if (IN_param_value != NULL) {
       
  8595               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8596               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8597             }
       
  8598             
       
  8599             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8600             {
       
  8601         
       
  8602                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  8603                 return return_type_symbol;
       
  8604                 
       
  8605             }
       
  8606             
       
  8607             
       
  8608             ERROR;
       
  8609         }
       
  8610         
       
  8611     }/*function_lreal_to_lint*/
       
  8612     break;
       
  8613 
       
  8614 /****
       
  8615  *LREAL_TO_DINT
       
  8616  */
       
  8617     case function_lreal_to_dint :
       
  8618     {
       
  8619         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8620 
       
  8621         {
       
  8622             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8623             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8624             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8625             symbol_c *IN_type_symbol = NULL;
       
  8626             
       
  8627             /* Get the value from a foo(<param_value>) style call */
       
  8628             if (IN_param_value == NULL)
       
  8629               IN_param_value = function_call_param_iterator.next_nf();
       
  8630             if (IN_param_value != NULL) {
       
  8631               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8632               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8633             }
       
  8634             
       
  8635             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8636             {
       
  8637         
       
  8638                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  8639                 return return_type_symbol;
       
  8640                 
       
  8641             }
       
  8642             
       
  8643             
       
  8644             ERROR;
       
  8645         }
       
  8646         
       
  8647     }/*function_lreal_to_dint*/
       
  8648     break;
       
  8649 
       
  8650 /****
       
  8651  *LREAL_TO_DATE
       
  8652  */
       
  8653     case function_lreal_to_date :
       
  8654     {
       
  8655         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8656 
       
  8657         {
       
  8658             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8659             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8660             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8661             symbol_c *IN_type_symbol = NULL;
       
  8662             
       
  8663             /* Get the value from a foo(<param_value>) style call */
       
  8664             if (IN_param_value == NULL)
       
  8665               IN_param_value = function_call_param_iterator.next_nf();
       
  8666             if (IN_param_value != NULL) {
       
  8667               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8668               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8669             }
       
  8670             
       
  8671             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8672             {
       
  8673         
       
  8674                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  8675                 return return_type_symbol;
       
  8676                 
       
  8677             }
       
  8678             
       
  8679             
       
  8680             ERROR;
       
  8681         }
       
  8682         
       
  8683     }/*function_lreal_to_date*/
       
  8684     break;
       
  8685 
       
  8686 /****
       
  8687  *LREAL_TO_DWORD
       
  8688  */
       
  8689     case function_lreal_to_dword :
       
  8690     {
       
  8691         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8692 
       
  8693         {
       
  8694             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8695             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8696             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8697             symbol_c *IN_type_symbol = NULL;
       
  8698             
       
  8699             /* Get the value from a foo(<param_value>) style call */
       
  8700             if (IN_param_value == NULL)
       
  8701               IN_param_value = function_call_param_iterator.next_nf();
       
  8702             if (IN_param_value != NULL) {
       
  8703               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8704               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8705             }
       
  8706             
       
  8707             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8708             {
       
  8709         
       
  8710                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  8711                 return return_type_symbol;
       
  8712                 
       
  8713             }
       
  8714             
       
  8715             
       
  8716             ERROR;
       
  8717         }
       
  8718         
       
  8719     }/*function_lreal_to_dword*/
       
  8720     break;
       
  8721 
       
  8722 /****
       
  8723  *LREAL_TO_DT
       
  8724  */
       
  8725     case function_lreal_to_dt :
       
  8726     {
       
  8727         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8728 
       
  8729         {
       
  8730             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8731             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8732             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8733             symbol_c *IN_type_symbol = NULL;
       
  8734             
       
  8735             /* Get the value from a foo(<param_value>) style call */
       
  8736             if (IN_param_value == NULL)
       
  8737               IN_param_value = function_call_param_iterator.next_nf();
       
  8738             if (IN_param_value != NULL) {
       
  8739               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8740               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8741             }
       
  8742             
       
  8743             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8744             {
       
  8745         
       
  8746                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  8747                 return return_type_symbol;
       
  8748                 
       
  8749             }
       
  8750             
       
  8751             
       
  8752             ERROR;
       
  8753         }
       
  8754         
       
  8755     }/*function_lreal_to_dt*/
       
  8756     break;
       
  8757 
       
  8758 /****
       
  8759  *LREAL_TO_TOD
       
  8760  */
       
  8761     case function_lreal_to_tod :
       
  8762     {
       
  8763         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8764 
       
  8765         {
       
  8766             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8767             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8768             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8769             symbol_c *IN_type_symbol = NULL;
       
  8770             
       
  8771             /* Get the value from a foo(<param_value>) style call */
       
  8772             if (IN_param_value == NULL)
       
  8773               IN_param_value = function_call_param_iterator.next_nf();
       
  8774             if (IN_param_value != NULL) {
       
  8775               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8776               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8777             }
       
  8778             
       
  8779             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8780             {
       
  8781         
       
  8782                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  8783                 return return_type_symbol;
       
  8784                 
       
  8785             }
       
  8786             
       
  8787             
       
  8788             ERROR;
       
  8789         }
       
  8790         
       
  8791     }/*function_lreal_to_tod*/
       
  8792     break;
       
  8793 
       
  8794 /****
       
  8795  *LREAL_TO_UDINT
       
  8796  */
       
  8797     case function_lreal_to_udint :
       
  8798     {
       
  8799         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8800 
       
  8801         {
       
  8802             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8803             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8804             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8805             symbol_c *IN_type_symbol = NULL;
       
  8806             
       
  8807             /* Get the value from a foo(<param_value>) style call */
       
  8808             if (IN_param_value == NULL)
       
  8809               IN_param_value = function_call_param_iterator.next_nf();
       
  8810             if (IN_param_value != NULL) {
       
  8811               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8812               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8813             }
       
  8814             
       
  8815             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8816             {
       
  8817         
       
  8818                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  8819                 return return_type_symbol;
       
  8820                 
       
  8821             }
       
  8822             
       
  8823             
       
  8824             ERROR;
       
  8825         }
       
  8826         
       
  8827     }/*function_lreal_to_udint*/
       
  8828     break;
       
  8829 
       
  8830 /****
       
  8831  *LREAL_TO_WORD
       
  8832  */
       
  8833     case function_lreal_to_word :
       
  8834     {
       
  8835         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8836 
       
  8837         {
       
  8838             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8839             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8840             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8841             symbol_c *IN_type_symbol = NULL;
       
  8842             
       
  8843             /* Get the value from a foo(<param_value>) style call */
       
  8844             if (IN_param_value == NULL)
       
  8845               IN_param_value = function_call_param_iterator.next_nf();
       
  8846             if (IN_param_value != NULL) {
       
  8847               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8848               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8849             }
       
  8850             
       
  8851             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8852             {
       
  8853         
       
  8854                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  8855                 return return_type_symbol;
       
  8856                 
       
  8857             }
       
  8858             
       
  8859             
       
  8860             ERROR;
       
  8861         }
       
  8862         
       
  8863     }/*function_lreal_to_word*/
       
  8864     break;
       
  8865 
       
  8866 /****
       
  8867  *LREAL_TO_STRING
       
  8868  */
       
  8869     case function_lreal_to_string :
       
  8870     {
       
  8871         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8872 
       
  8873         {
       
  8874             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8875             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8876             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8877             symbol_c *IN_type_symbol = NULL;
       
  8878             
       
  8879             /* Get the value from a foo(<param_value>) style call */
       
  8880             if (IN_param_value == NULL)
       
  8881               IN_param_value = function_call_param_iterator.next_nf();
       
  8882             if (IN_param_value != NULL) {
       
  8883               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8884               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8885             }
       
  8886             
       
  8887             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8888             {
       
  8889         
       
  8890                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  8891                 return return_type_symbol;
       
  8892                 
       
  8893             }
       
  8894             
       
  8895             
       
  8896             ERROR;
       
  8897         }
       
  8898         
       
  8899     }/*function_lreal_to_string*/
       
  8900     break;
       
  8901 
       
  8902 /****
       
  8903  *LREAL_TO_LWORD
       
  8904  */
       
  8905     case function_lreal_to_lword :
       
  8906     {
       
  8907         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8908 
       
  8909         {
       
  8910             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8911             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8912             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8913             symbol_c *IN_type_symbol = NULL;
       
  8914             
       
  8915             /* Get the value from a foo(<param_value>) style call */
       
  8916             if (IN_param_value == NULL)
       
  8917               IN_param_value = function_call_param_iterator.next_nf();
       
  8918             if (IN_param_value != NULL) {
       
  8919               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8920               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8921             }
       
  8922             
       
  8923             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8924             {
       
  8925         
       
  8926                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  8927                 return return_type_symbol;
       
  8928                 
       
  8929             }
       
  8930             
       
  8931             
       
  8932             ERROR;
       
  8933         }
       
  8934         
       
  8935     }/*function_lreal_to_lword*/
       
  8936     break;
       
  8937 
       
  8938 /****
       
  8939  *LREAL_TO_UINT
       
  8940  */
       
  8941     case function_lreal_to_uint :
       
  8942     {
       
  8943         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8944 
       
  8945         {
       
  8946             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8947             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8948             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8949             symbol_c *IN_type_symbol = NULL;
       
  8950             
       
  8951             /* Get the value from a foo(<param_value>) style call */
       
  8952             if (IN_param_value == NULL)
       
  8953               IN_param_value = function_call_param_iterator.next_nf();
       
  8954             if (IN_param_value != NULL) {
       
  8955               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8956               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8957             }
       
  8958             
       
  8959             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8960             {
       
  8961         
       
  8962                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  8963                 return return_type_symbol;
       
  8964                 
       
  8965             }
       
  8966             
       
  8967             
       
  8968             ERROR;
       
  8969         }
       
  8970         
       
  8971     }/*function_lreal_to_uint*/
       
  8972     break;
       
  8973 
       
  8974 /****
       
  8975  *LREAL_TO_BYTE
       
  8976  */
       
  8977     case function_lreal_to_byte :
       
  8978     {
       
  8979         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  8980 
       
  8981         {
       
  8982             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  8983             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  8984             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  8985             symbol_c *IN_type_symbol = NULL;
       
  8986             
       
  8987             /* Get the value from a foo(<param_value>) style call */
       
  8988             if (IN_param_value == NULL)
       
  8989               IN_param_value = function_call_param_iterator.next_nf();
       
  8990             if (IN_param_value != NULL) {
       
  8991               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  8992               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  8993             }
       
  8994             
       
  8995             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  8996             {
       
  8997         
       
  8998                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
  8999                 return return_type_symbol;
       
  9000                 
       
  9001             }
       
  9002             
       
  9003             
       
  9004             ERROR;
       
  9005         }
       
  9006         
       
  9007     }/*function_lreal_to_byte*/
       
  9008     break;
       
  9009 
       
  9010 /****
       
  9011  *LREAL_TO_USINT
       
  9012  */
       
  9013     case function_lreal_to_usint :
       
  9014     {
       
  9015         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9016 
       
  9017         {
       
  9018             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9019             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9020             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9021             symbol_c *IN_type_symbol = NULL;
       
  9022             
       
  9023             /* Get the value from a foo(<param_value>) style call */
       
  9024             if (IN_param_value == NULL)
       
  9025               IN_param_value = function_call_param_iterator.next_nf();
       
  9026             if (IN_param_value != NULL) {
       
  9027               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9028               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9029             }
       
  9030             
       
  9031             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  9032             {
       
  9033         
       
  9034                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  9035                 return return_type_symbol;
       
  9036                 
       
  9037             }
       
  9038             
       
  9039             
       
  9040             ERROR;
       
  9041         }
       
  9042         
       
  9043     }/*function_lreal_to_usint*/
       
  9044     break;
       
  9045 
       
  9046 /****
       
  9047  *LREAL_TO_ULINT
       
  9048  */
       
  9049     case function_lreal_to_ulint :
       
  9050     {
       
  9051         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9052 
       
  9053         {
       
  9054             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9055             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9056             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9057             symbol_c *IN_type_symbol = NULL;
       
  9058             
       
  9059             /* Get the value from a foo(<param_value>) style call */
       
  9060             if (IN_param_value == NULL)
       
  9061               IN_param_value = function_call_param_iterator.next_nf();
       
  9062             if (IN_param_value != NULL) {
       
  9063               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9064               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9065             }
       
  9066             
       
  9067             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  9068             {
       
  9069         
       
  9070                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  9071                 return return_type_symbol;
       
  9072                 
       
  9073             }
       
  9074             
       
  9075             
       
  9076             ERROR;
       
  9077         }
       
  9078         
       
  9079     }/*function_lreal_to_ulint*/
       
  9080     break;
       
  9081 
       
  9082 /****
       
  9083  *LREAL_TO_BOOL
       
  9084  */
       
  9085     case function_lreal_to_bool :
       
  9086     {
       
  9087         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9088 
       
  9089         {
       
  9090             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9091             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9092             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9093             symbol_c *IN_type_symbol = NULL;
       
  9094             
       
  9095             /* Get the value from a foo(<param_value>) style call */
       
  9096             if (IN_param_value == NULL)
       
  9097               IN_param_value = function_call_param_iterator.next_nf();
       
  9098             if (IN_param_value != NULL) {
       
  9099               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9100               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9101             }
       
  9102             
       
  9103             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  9104             {
       
  9105         
       
  9106                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  9107                 return return_type_symbol;
       
  9108                 
       
  9109             }
       
  9110             
       
  9111             
       
  9112             ERROR;
       
  9113         }
       
  9114         
       
  9115     }/*function_lreal_to_bool*/
       
  9116     break;
       
  9117 
       
  9118 /****
       
  9119  *LREAL_TO_TIME
       
  9120  */
       
  9121     case function_lreal_to_time :
       
  9122     {
       
  9123         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9124 
       
  9125         {
       
  9126             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9127             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9128             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9129             symbol_c *IN_type_symbol = NULL;
       
  9130             
       
  9131             /* Get the value from a foo(<param_value>) style call */
       
  9132             if (IN_param_value == NULL)
       
  9133               IN_param_value = function_call_param_iterator.next_nf();
       
  9134             if (IN_param_value != NULL) {
       
  9135               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9136               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9137             }
       
  9138             
       
  9139             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  9140             {
       
  9141         
       
  9142                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  9143                 return return_type_symbol;
       
  9144                 
       
  9145             }
       
  9146             
       
  9147             
       
  9148             ERROR;
       
  9149         }
       
  9150         
       
  9151     }/*function_lreal_to_time*/
       
  9152     break;
       
  9153 
       
  9154 /****
       
  9155  *LREAL_TO_INT
       
  9156  */
       
  9157     case function_lreal_to_int :
       
  9158     {
       
  9159         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9160 
       
  9161         {
       
  9162             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9163             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9164             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9165             symbol_c *IN_type_symbol = NULL;
       
  9166             
       
  9167             /* Get the value from a foo(<param_value>) style call */
       
  9168             if (IN_param_value == NULL)
       
  9169               IN_param_value = function_call_param_iterator.next_nf();
       
  9170             if (IN_param_value != NULL) {
       
  9171               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9172               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9173             }
       
  9174             
       
  9175             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
  9176             {
       
  9177         
       
  9178                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  9179                 return return_type_symbol;
       
  9180                 
       
  9181             }
       
  9182             
       
  9183             
       
  9184             ERROR;
       
  9185         }
       
  9186         
       
  9187     }/*function_lreal_to_int*/
       
  9188     break;
       
  9189 
       
  9190 /****
       
  9191  *BYTE_TO_REAL
       
  9192  */
       
  9193     case function_byte_to_real :
       
  9194     {
       
  9195         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9196 
       
  9197         {
       
  9198             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9199             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9200             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9201             symbol_c *IN_type_symbol = NULL;
       
  9202             
       
  9203             /* Get the value from a foo(<param_value>) style call */
       
  9204             if (IN_param_value == NULL)
       
  9205               IN_param_value = function_call_param_iterator.next_nf();
       
  9206             if (IN_param_value != NULL) {
       
  9207               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9208               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9209             }
       
  9210             
       
  9211             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9212             {
       
  9213         
       
  9214                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  9215                 return return_type_symbol;
       
  9216                 
       
  9217             }
       
  9218             
       
  9219             
       
  9220             ERROR;
       
  9221         }
       
  9222         
       
  9223     }/*function_byte_to_real*/
       
  9224     break;
       
  9225 
       
  9226 /****
       
  9227  *BYTE_TO_SINT
       
  9228  */
       
  9229     case function_byte_to_sint :
       
  9230     {
       
  9231         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9232 
       
  9233         {
       
  9234             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9235             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9236             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9237             symbol_c *IN_type_symbol = NULL;
       
  9238             
       
  9239             /* Get the value from a foo(<param_value>) style call */
       
  9240             if (IN_param_value == NULL)
       
  9241               IN_param_value = function_call_param_iterator.next_nf();
       
  9242             if (IN_param_value != NULL) {
       
  9243               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9244               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9245             }
       
  9246             
       
  9247             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9248             {
       
  9249         
       
  9250                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  9251                 return return_type_symbol;
       
  9252                 
       
  9253             }
       
  9254             
       
  9255             
       
  9256             ERROR;
       
  9257         }
       
  9258         
       
  9259     }/*function_byte_to_sint*/
       
  9260     break;
       
  9261 
       
  9262 /****
       
  9263  *BYTE_TO_LINT
       
  9264  */
       
  9265     case function_byte_to_lint :
       
  9266     {
       
  9267         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9268 
       
  9269         {
       
  9270             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9271             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9272             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9273             symbol_c *IN_type_symbol = NULL;
       
  9274             
       
  9275             /* Get the value from a foo(<param_value>) style call */
       
  9276             if (IN_param_value == NULL)
       
  9277               IN_param_value = function_call_param_iterator.next_nf();
       
  9278             if (IN_param_value != NULL) {
       
  9279               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9280               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9281             }
       
  9282             
       
  9283             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9284             {
       
  9285         
       
  9286                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  9287                 return return_type_symbol;
       
  9288                 
       
  9289             }
       
  9290             
       
  9291             
       
  9292             ERROR;
       
  9293         }
       
  9294         
       
  9295     }/*function_byte_to_lint*/
       
  9296     break;
       
  9297 
       
  9298 /****
       
  9299  *BYTE_TO_DINT
       
  9300  */
       
  9301     case function_byte_to_dint :
       
  9302     {
       
  9303         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9304 
       
  9305         {
       
  9306             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9307             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9308             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9309             symbol_c *IN_type_symbol = NULL;
       
  9310             
       
  9311             /* Get the value from a foo(<param_value>) style call */
       
  9312             if (IN_param_value == NULL)
       
  9313               IN_param_value = function_call_param_iterator.next_nf();
       
  9314             if (IN_param_value != NULL) {
       
  9315               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9316               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9317             }
       
  9318             
       
  9319             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9320             {
       
  9321         
       
  9322                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
  9323                 return return_type_symbol;
       
  9324                 
       
  9325             }
       
  9326             
       
  9327             
       
  9328             ERROR;
       
  9329         }
       
  9330         
       
  9331     }/*function_byte_to_dint*/
       
  9332     break;
       
  9333 
       
  9334 /****
       
  9335  *BYTE_TO_DATE
       
  9336  */
       
  9337     case function_byte_to_date :
       
  9338     {
       
  9339         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9340 
       
  9341         {
       
  9342             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9343             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9344             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9345             symbol_c *IN_type_symbol = NULL;
       
  9346             
       
  9347             /* Get the value from a foo(<param_value>) style call */
       
  9348             if (IN_param_value == NULL)
       
  9349               IN_param_value = function_call_param_iterator.next_nf();
       
  9350             if (IN_param_value != NULL) {
       
  9351               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9352               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9353             }
       
  9354             
       
  9355             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9356             {
       
  9357         
       
  9358                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
  9359                 return return_type_symbol;
       
  9360                 
       
  9361             }
       
  9362             
       
  9363             
       
  9364             ERROR;
       
  9365         }
       
  9366         
       
  9367     }/*function_byte_to_date*/
       
  9368     break;
       
  9369 
       
  9370 /****
       
  9371  *BYTE_TO_DWORD
       
  9372  */
       
  9373     case function_byte_to_dword :
       
  9374     {
       
  9375         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9376 
       
  9377         {
       
  9378             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9379             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9380             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9381             symbol_c *IN_type_symbol = NULL;
       
  9382             
       
  9383             /* Get the value from a foo(<param_value>) style call */
       
  9384             if (IN_param_value == NULL)
       
  9385               IN_param_value = function_call_param_iterator.next_nf();
       
  9386             if (IN_param_value != NULL) {
       
  9387               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9388               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9389             }
       
  9390             
       
  9391             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9392             {
       
  9393         
       
  9394                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
  9395                 return return_type_symbol;
       
  9396                 
       
  9397             }
       
  9398             
       
  9399             
       
  9400             ERROR;
       
  9401         }
       
  9402         
       
  9403     }/*function_byte_to_dword*/
       
  9404     break;
       
  9405 
       
  9406 /****
       
  9407  *BYTE_TO_DT
       
  9408  */
       
  9409     case function_byte_to_dt :
       
  9410     {
       
  9411         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9412 
       
  9413         {
       
  9414             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9415             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9416             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9417             symbol_c *IN_type_symbol = NULL;
       
  9418             
       
  9419             /* Get the value from a foo(<param_value>) style call */
       
  9420             if (IN_param_value == NULL)
       
  9421               IN_param_value = function_call_param_iterator.next_nf();
       
  9422             if (IN_param_value != NULL) {
       
  9423               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9424               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9425             }
       
  9426             
       
  9427             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9428             {
       
  9429         
       
  9430                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
  9431                 return return_type_symbol;
       
  9432                 
       
  9433             }
       
  9434             
       
  9435             
       
  9436             ERROR;
       
  9437         }
       
  9438         
       
  9439     }/*function_byte_to_dt*/
       
  9440     break;
       
  9441 
       
  9442 /****
       
  9443  *BYTE_TO_TOD
       
  9444  */
       
  9445     case function_byte_to_tod :
       
  9446     {
       
  9447         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9448 
       
  9449         {
       
  9450             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9451             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9452             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9453             symbol_c *IN_type_symbol = NULL;
       
  9454             
       
  9455             /* Get the value from a foo(<param_value>) style call */
       
  9456             if (IN_param_value == NULL)
       
  9457               IN_param_value = function_call_param_iterator.next_nf();
       
  9458             if (IN_param_value != NULL) {
       
  9459               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9460               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9461             }
       
  9462             
       
  9463             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9464             {
       
  9465         
       
  9466                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
  9467                 return return_type_symbol;
       
  9468                 
       
  9469             }
       
  9470             
       
  9471             
       
  9472             ERROR;
       
  9473         }
       
  9474         
       
  9475     }/*function_byte_to_tod*/
       
  9476     break;
       
  9477 
       
  9478 /****
       
  9479  *BYTE_TO_UDINT
       
  9480  */
       
  9481     case function_byte_to_udint :
       
  9482     {
       
  9483         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9484 
       
  9485         {
       
  9486             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9487             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9488             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9489             symbol_c *IN_type_symbol = NULL;
       
  9490             
       
  9491             /* Get the value from a foo(<param_value>) style call */
       
  9492             if (IN_param_value == NULL)
       
  9493               IN_param_value = function_call_param_iterator.next_nf();
       
  9494             if (IN_param_value != NULL) {
       
  9495               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9496               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9497             }
       
  9498             
       
  9499             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9500             {
       
  9501         
       
  9502                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
  9503                 return return_type_symbol;
       
  9504                 
       
  9505             }
       
  9506             
       
  9507             
       
  9508             ERROR;
       
  9509         }
       
  9510         
       
  9511     }/*function_byte_to_udint*/
       
  9512     break;
       
  9513 
       
  9514 /****
       
  9515  *BYTE_TO_WORD
       
  9516  */
       
  9517     case function_byte_to_word :
       
  9518     {
       
  9519         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9520 
       
  9521         {
       
  9522             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9523             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9524             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9525             symbol_c *IN_type_symbol = NULL;
       
  9526             
       
  9527             /* Get the value from a foo(<param_value>) style call */
       
  9528             if (IN_param_value == NULL)
       
  9529               IN_param_value = function_call_param_iterator.next_nf();
       
  9530             if (IN_param_value != NULL) {
       
  9531               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9532               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9533             }
       
  9534             
       
  9535             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9536             {
       
  9537         
       
  9538                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
  9539                 return return_type_symbol;
       
  9540                 
       
  9541             }
       
  9542             
       
  9543             
       
  9544             ERROR;
       
  9545         }
       
  9546         
       
  9547     }/*function_byte_to_word*/
       
  9548     break;
       
  9549 
       
  9550 /****
       
  9551  *BYTE_TO_STRING
       
  9552  */
       
  9553     case function_byte_to_string :
       
  9554     {
       
  9555         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9556 
       
  9557         {
       
  9558             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9559             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9560             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9561             symbol_c *IN_type_symbol = NULL;
       
  9562             
       
  9563             /* Get the value from a foo(<param_value>) style call */
       
  9564             if (IN_param_value == NULL)
       
  9565               IN_param_value = function_call_param_iterator.next_nf();
       
  9566             if (IN_param_value != NULL) {
       
  9567               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9568               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9569             }
       
  9570             
       
  9571             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9572             {
       
  9573         
       
  9574                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
  9575                 return return_type_symbol;
       
  9576                 
       
  9577             }
       
  9578             
       
  9579             
       
  9580             ERROR;
       
  9581         }
       
  9582         
       
  9583     }/*function_byte_to_string*/
       
  9584     break;
       
  9585 
       
  9586 /****
       
  9587  *BYTE_TO_LWORD
       
  9588  */
       
  9589     case function_byte_to_lword :
       
  9590     {
       
  9591         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9592 
       
  9593         {
       
  9594             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9595             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9596             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9597             symbol_c *IN_type_symbol = NULL;
       
  9598             
       
  9599             /* Get the value from a foo(<param_value>) style call */
       
  9600             if (IN_param_value == NULL)
       
  9601               IN_param_value = function_call_param_iterator.next_nf();
       
  9602             if (IN_param_value != NULL) {
       
  9603               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9604               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9605             }
       
  9606             
       
  9607             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9608             {
       
  9609         
       
  9610                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
  9611                 return return_type_symbol;
       
  9612                 
       
  9613             }
       
  9614             
       
  9615             
       
  9616             ERROR;
       
  9617         }
       
  9618         
       
  9619     }/*function_byte_to_lword*/
       
  9620     break;
       
  9621 
       
  9622 /****
       
  9623  *BYTE_TO_UINT
       
  9624  */
       
  9625     case function_byte_to_uint :
       
  9626     {
       
  9627         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9628 
       
  9629         {
       
  9630             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9631             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9632             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9633             symbol_c *IN_type_symbol = NULL;
       
  9634             
       
  9635             /* Get the value from a foo(<param_value>) style call */
       
  9636             if (IN_param_value == NULL)
       
  9637               IN_param_value = function_call_param_iterator.next_nf();
       
  9638             if (IN_param_value != NULL) {
       
  9639               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9640               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9641             }
       
  9642             
       
  9643             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9644             {
       
  9645         
       
  9646                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
  9647                 return return_type_symbol;
       
  9648                 
       
  9649             }
       
  9650             
       
  9651             
       
  9652             ERROR;
       
  9653         }
       
  9654         
       
  9655     }/*function_byte_to_uint*/
       
  9656     break;
       
  9657 
       
  9658 /****
       
  9659  *BYTE_TO_LREAL
       
  9660  */
       
  9661     case function_byte_to_lreal :
       
  9662     {
       
  9663         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9664 
       
  9665         {
       
  9666             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9667             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9668             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9669             symbol_c *IN_type_symbol = NULL;
       
  9670             
       
  9671             /* Get the value from a foo(<param_value>) style call */
       
  9672             if (IN_param_value == NULL)
       
  9673               IN_param_value = function_call_param_iterator.next_nf();
       
  9674             if (IN_param_value != NULL) {
       
  9675               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9676               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9677             }
       
  9678             
       
  9679             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9680             {
       
  9681         
       
  9682                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
  9683                 return return_type_symbol;
       
  9684                 
       
  9685             }
       
  9686             
       
  9687             
       
  9688             ERROR;
       
  9689         }
       
  9690         
       
  9691     }/*function_byte_to_lreal*/
       
  9692     break;
       
  9693 
       
  9694 /****
       
  9695  *BYTE_TO_USINT
       
  9696  */
       
  9697     case function_byte_to_usint :
       
  9698     {
       
  9699         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9700 
       
  9701         {
       
  9702             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9703             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9704             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9705             symbol_c *IN_type_symbol = NULL;
       
  9706             
       
  9707             /* Get the value from a foo(<param_value>) style call */
       
  9708             if (IN_param_value == NULL)
       
  9709               IN_param_value = function_call_param_iterator.next_nf();
       
  9710             if (IN_param_value != NULL) {
       
  9711               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9712               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9713             }
       
  9714             
       
  9715             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9716             {
       
  9717         
       
  9718                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
  9719                 return return_type_symbol;
       
  9720                 
       
  9721             }
       
  9722             
       
  9723             
       
  9724             ERROR;
       
  9725         }
       
  9726         
       
  9727     }/*function_byte_to_usint*/
       
  9728     break;
       
  9729 
       
  9730 /****
       
  9731  *BYTE_TO_ULINT
       
  9732  */
       
  9733     case function_byte_to_ulint :
       
  9734     {
       
  9735         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9736 
       
  9737         {
       
  9738             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9739             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9740             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9741             symbol_c *IN_type_symbol = NULL;
       
  9742             
       
  9743             /* Get the value from a foo(<param_value>) style call */
       
  9744             if (IN_param_value == NULL)
       
  9745               IN_param_value = function_call_param_iterator.next_nf();
       
  9746             if (IN_param_value != NULL) {
       
  9747               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9748               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9749             }
       
  9750             
       
  9751             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9752             {
       
  9753         
       
  9754                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
  9755                 return return_type_symbol;
       
  9756                 
       
  9757             }
       
  9758             
       
  9759             
       
  9760             ERROR;
       
  9761         }
       
  9762         
       
  9763     }/*function_byte_to_ulint*/
       
  9764     break;
       
  9765 
       
  9766 /****
       
  9767  *BYTE_TO_BOOL
       
  9768  */
       
  9769     case function_byte_to_bool :
       
  9770     {
       
  9771         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9772 
       
  9773         {
       
  9774             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9775             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9776             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9777             symbol_c *IN_type_symbol = NULL;
       
  9778             
       
  9779             /* Get the value from a foo(<param_value>) style call */
       
  9780             if (IN_param_value == NULL)
       
  9781               IN_param_value = function_call_param_iterator.next_nf();
       
  9782             if (IN_param_value != NULL) {
       
  9783               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9784               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9785             }
       
  9786             
       
  9787             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9788             {
       
  9789         
       
  9790                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
  9791                 return return_type_symbol;
       
  9792                 
       
  9793             }
       
  9794             
       
  9795             
       
  9796             ERROR;
       
  9797         }
       
  9798         
       
  9799     }/*function_byte_to_bool*/
       
  9800     break;
       
  9801 
       
  9802 /****
       
  9803  *BYTE_TO_TIME
       
  9804  */
       
  9805     case function_byte_to_time :
       
  9806     {
       
  9807         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9808 
       
  9809         {
       
  9810             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9811             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9812             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9813             symbol_c *IN_type_symbol = NULL;
       
  9814             
       
  9815             /* Get the value from a foo(<param_value>) style call */
       
  9816             if (IN_param_value == NULL)
       
  9817               IN_param_value = function_call_param_iterator.next_nf();
       
  9818             if (IN_param_value != NULL) {
       
  9819               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9820               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9821             }
       
  9822             
       
  9823             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9824             {
       
  9825         
       
  9826                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
  9827                 return return_type_symbol;
       
  9828                 
       
  9829             }
       
  9830             
       
  9831             
       
  9832             ERROR;
       
  9833         }
       
  9834         
       
  9835     }/*function_byte_to_time*/
       
  9836     break;
       
  9837 
       
  9838 /****
       
  9839  *BYTE_TO_INT
       
  9840  */
       
  9841     case function_byte_to_int :
       
  9842     {
       
  9843         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
  9844 
       
  9845         {
       
  9846             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9847             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9848             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9849             symbol_c *IN_type_symbol = NULL;
       
  9850             
       
  9851             /* Get the value from a foo(<param_value>) style call */
       
  9852             if (IN_param_value == NULL)
       
  9853               IN_param_value = function_call_param_iterator.next_nf();
       
  9854             if (IN_param_value != NULL) {
       
  9855               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9856               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9857             }
       
  9858             
       
  9859             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
  9860             {
       
  9861         
       
  9862                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
  9863                 return return_type_symbol;
       
  9864                 
       
  9865             }
       
  9866             
       
  9867             
       
  9868             ERROR;
       
  9869         }
       
  9870         
       
  9871     }/*function_byte_to_int*/
       
  9872     break;
       
  9873 
       
  9874 /****
       
  9875  *USINT_TO_REAL
       
  9876  */
       
  9877     case function_usint_to_real :
       
  9878     {
       
  9879         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
  9880 
       
  9881         {
       
  9882             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9883             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9884             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9885             symbol_c *IN_type_symbol = NULL;
       
  9886             
       
  9887             /* Get the value from a foo(<param_value>) style call */
       
  9888             if (IN_param_value == NULL)
       
  9889               IN_param_value = function_call_param_iterator.next_nf();
       
  9890             if (IN_param_value != NULL) {
       
  9891               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9892               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9893             }
       
  9894             
       
  9895             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
  9896             {
       
  9897         
       
  9898                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
  9899                 return return_type_symbol;
       
  9900                 
       
  9901             }
       
  9902             
       
  9903             
       
  9904             ERROR;
       
  9905         }
       
  9906         
       
  9907     }/*function_usint_to_real*/
       
  9908     break;
       
  9909 
       
  9910 /****
       
  9911  *USINT_TO_SINT
       
  9912  */
       
  9913     case function_usint_to_sint :
       
  9914     {
       
  9915         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
  9916 
       
  9917         {
       
  9918             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9919             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9920             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9921             symbol_c *IN_type_symbol = NULL;
       
  9922             
       
  9923             /* Get the value from a foo(<param_value>) style call */
       
  9924             if (IN_param_value == NULL)
       
  9925               IN_param_value = function_call_param_iterator.next_nf();
       
  9926             if (IN_param_value != NULL) {
       
  9927               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9928               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9929             }
       
  9930             
       
  9931             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
  9932             {
       
  9933         
       
  9934                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
  9935                 return return_type_symbol;
       
  9936                 
       
  9937             }
       
  9938             
       
  9939             
       
  9940             ERROR;
       
  9941         }
       
  9942         
       
  9943     }/*function_usint_to_sint*/
       
  9944     break;
       
  9945 
       
  9946 /****
       
  9947  *USINT_TO_LINT
       
  9948  */
       
  9949     case function_usint_to_lint :
       
  9950     {
       
  9951         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
  9952 
       
  9953         {
       
  9954             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9955             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9956             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9957             symbol_c *IN_type_symbol = NULL;
       
  9958             
       
  9959             /* Get the value from a foo(<param_value>) style call */
       
  9960             if (IN_param_value == NULL)
       
  9961               IN_param_value = function_call_param_iterator.next_nf();
       
  9962             if (IN_param_value != NULL) {
       
  9963               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
  9964               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
  9965             }
       
  9966             
       
  9967             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
  9968             {
       
  9969         
       
  9970                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
  9971                 return return_type_symbol;
       
  9972                 
       
  9973             }
       
  9974             
       
  9975             
       
  9976             ERROR;
       
  9977         }
       
  9978         
       
  9979     }/*function_usint_to_lint*/
       
  9980     break;
       
  9981 
       
  9982 /****
       
  9983  *USINT_TO_DINT
       
  9984  */
       
  9985     case function_usint_to_dint :
       
  9986     {
       
  9987         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
  9988 
       
  9989         {
       
  9990             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
  9991             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
  9992             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
  9993             symbol_c *IN_type_symbol = NULL;
       
  9994             
       
  9995             /* Get the value from a foo(<param_value>) style call */
       
  9996             if (IN_param_value == NULL)
       
  9997               IN_param_value = function_call_param_iterator.next_nf();
       
  9998             if (IN_param_value != NULL) {
       
  9999               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10000               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10001             }
       
 10002             
       
 10003             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10004             {
       
 10005         
       
 10006                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 10007                 return return_type_symbol;
       
 10008                 
       
 10009             }
       
 10010             
       
 10011             
       
 10012             ERROR;
       
 10013         }
       
 10014         
       
 10015     }/*function_usint_to_dint*/
       
 10016     break;
       
 10017 
       
 10018 /****
       
 10019  *USINT_TO_DATE
       
 10020  */
       
 10021     case function_usint_to_date :
       
 10022     {
       
 10023         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10024 
       
 10025         {
       
 10026             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10027             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10028             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10029             symbol_c *IN_type_symbol = NULL;
       
 10030             
       
 10031             /* Get the value from a foo(<param_value>) style call */
       
 10032             if (IN_param_value == NULL)
       
 10033               IN_param_value = function_call_param_iterator.next_nf();
       
 10034             if (IN_param_value != NULL) {
       
 10035               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10036               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10037             }
       
 10038             
       
 10039             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10040             {
       
 10041         
       
 10042                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 10043                 return return_type_symbol;
       
 10044                 
       
 10045             }
       
 10046             
       
 10047             
       
 10048             ERROR;
       
 10049         }
       
 10050         
       
 10051     }/*function_usint_to_date*/
       
 10052     break;
       
 10053 
       
 10054 /****
       
 10055  *USINT_TO_DWORD
       
 10056  */
       
 10057     case function_usint_to_dword :
       
 10058     {
       
 10059         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10060 
       
 10061         {
       
 10062             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10063             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10064             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10065             symbol_c *IN_type_symbol = NULL;
       
 10066             
       
 10067             /* Get the value from a foo(<param_value>) style call */
       
 10068             if (IN_param_value == NULL)
       
 10069               IN_param_value = function_call_param_iterator.next_nf();
       
 10070             if (IN_param_value != NULL) {
       
 10071               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10072               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10073             }
       
 10074             
       
 10075             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10076             {
       
 10077         
       
 10078                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 10079                 return return_type_symbol;
       
 10080                 
       
 10081             }
       
 10082             
       
 10083             
       
 10084             ERROR;
       
 10085         }
       
 10086         
       
 10087     }/*function_usint_to_dword*/
       
 10088     break;
       
 10089 
       
 10090 /****
       
 10091  *USINT_TO_DT
       
 10092  */
       
 10093     case function_usint_to_dt :
       
 10094     {
       
 10095         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10096 
       
 10097         {
       
 10098             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10099             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10100             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10101             symbol_c *IN_type_symbol = NULL;
       
 10102             
       
 10103             /* Get the value from a foo(<param_value>) style call */
       
 10104             if (IN_param_value == NULL)
       
 10105               IN_param_value = function_call_param_iterator.next_nf();
       
 10106             if (IN_param_value != NULL) {
       
 10107               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10108               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10109             }
       
 10110             
       
 10111             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10112             {
       
 10113         
       
 10114                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 10115                 return return_type_symbol;
       
 10116                 
       
 10117             }
       
 10118             
       
 10119             
       
 10120             ERROR;
       
 10121         }
       
 10122         
       
 10123     }/*function_usint_to_dt*/
       
 10124     break;
       
 10125 
       
 10126 /****
       
 10127  *USINT_TO_TOD
       
 10128  */
       
 10129     case function_usint_to_tod :
       
 10130     {
       
 10131         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10132 
       
 10133         {
       
 10134             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10135             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10136             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10137             symbol_c *IN_type_symbol = NULL;
       
 10138             
       
 10139             /* Get the value from a foo(<param_value>) style call */
       
 10140             if (IN_param_value == NULL)
       
 10141               IN_param_value = function_call_param_iterator.next_nf();
       
 10142             if (IN_param_value != NULL) {
       
 10143               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10144               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10145             }
       
 10146             
       
 10147             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10148             {
       
 10149         
       
 10150                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 10151                 return return_type_symbol;
       
 10152                 
       
 10153             }
       
 10154             
       
 10155             
       
 10156             ERROR;
       
 10157         }
       
 10158         
       
 10159     }/*function_usint_to_tod*/
       
 10160     break;
       
 10161 
       
 10162 /****
       
 10163  *USINT_TO_UDINT
       
 10164  */
       
 10165     case function_usint_to_udint :
       
 10166     {
       
 10167         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10168 
       
 10169         {
       
 10170             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10171             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10172             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10173             symbol_c *IN_type_symbol = NULL;
       
 10174             
       
 10175             /* Get the value from a foo(<param_value>) style call */
       
 10176             if (IN_param_value == NULL)
       
 10177               IN_param_value = function_call_param_iterator.next_nf();
       
 10178             if (IN_param_value != NULL) {
       
 10179               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10180               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10181             }
       
 10182             
       
 10183             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10184             {
       
 10185         
       
 10186                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 10187                 return return_type_symbol;
       
 10188                 
       
 10189             }
       
 10190             
       
 10191             
       
 10192             ERROR;
       
 10193         }
       
 10194         
       
 10195     }/*function_usint_to_udint*/
       
 10196     break;
       
 10197 
       
 10198 /****
       
 10199  *USINT_TO_WORD
       
 10200  */
       
 10201     case function_usint_to_word :
       
 10202     {
       
 10203         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10204 
       
 10205         {
       
 10206             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10207             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10208             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10209             symbol_c *IN_type_symbol = NULL;
       
 10210             
       
 10211             /* Get the value from a foo(<param_value>) style call */
       
 10212             if (IN_param_value == NULL)
       
 10213               IN_param_value = function_call_param_iterator.next_nf();
       
 10214             if (IN_param_value != NULL) {
       
 10215               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10216               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10217             }
       
 10218             
       
 10219             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10220             {
       
 10221         
       
 10222                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 10223                 return return_type_symbol;
       
 10224                 
       
 10225             }
       
 10226             
       
 10227             
       
 10228             ERROR;
       
 10229         }
       
 10230         
       
 10231     }/*function_usint_to_word*/
       
 10232     break;
       
 10233 
       
 10234 /****
       
 10235  *USINT_TO_STRING
       
 10236  */
       
 10237     case function_usint_to_string :
       
 10238     {
       
 10239         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10240 
       
 10241         {
       
 10242             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10243             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10244             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10245             symbol_c *IN_type_symbol = NULL;
       
 10246             
       
 10247             /* Get the value from a foo(<param_value>) style call */
       
 10248             if (IN_param_value == NULL)
       
 10249               IN_param_value = function_call_param_iterator.next_nf();
       
 10250             if (IN_param_value != NULL) {
       
 10251               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10252               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10253             }
       
 10254             
       
 10255             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10256             {
       
 10257         
       
 10258                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 10259                 return return_type_symbol;
       
 10260                 
       
 10261             }
       
 10262             
       
 10263             
       
 10264             ERROR;
       
 10265         }
       
 10266         
       
 10267     }/*function_usint_to_string*/
       
 10268     break;
       
 10269 
       
 10270 /****
       
 10271  *USINT_TO_LWORD
       
 10272  */
       
 10273     case function_usint_to_lword :
       
 10274     {
       
 10275         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10276 
       
 10277         {
       
 10278             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10279             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10280             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10281             symbol_c *IN_type_symbol = NULL;
       
 10282             
       
 10283             /* Get the value from a foo(<param_value>) style call */
       
 10284             if (IN_param_value == NULL)
       
 10285               IN_param_value = function_call_param_iterator.next_nf();
       
 10286             if (IN_param_value != NULL) {
       
 10287               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10288               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10289             }
       
 10290             
       
 10291             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10292             {
       
 10293         
       
 10294                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 10295                 return return_type_symbol;
       
 10296                 
       
 10297             }
       
 10298             
       
 10299             
       
 10300             ERROR;
       
 10301         }
       
 10302         
       
 10303     }/*function_usint_to_lword*/
       
 10304     break;
       
 10305 
       
 10306 /****
       
 10307  *USINT_TO_UINT
       
 10308  */
       
 10309     case function_usint_to_uint :
       
 10310     {
       
 10311         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10312 
       
 10313         {
       
 10314             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10315             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10316             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10317             symbol_c *IN_type_symbol = NULL;
       
 10318             
       
 10319             /* Get the value from a foo(<param_value>) style call */
       
 10320             if (IN_param_value == NULL)
       
 10321               IN_param_value = function_call_param_iterator.next_nf();
       
 10322             if (IN_param_value != NULL) {
       
 10323               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10324               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10325             }
       
 10326             
       
 10327             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10328             {
       
 10329         
       
 10330                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 10331                 return return_type_symbol;
       
 10332                 
       
 10333             }
       
 10334             
       
 10335             
       
 10336             ERROR;
       
 10337         }
       
 10338         
       
 10339     }/*function_usint_to_uint*/
       
 10340     break;
       
 10341 
       
 10342 /****
       
 10343  *USINT_TO_LREAL
       
 10344  */
       
 10345     case function_usint_to_lreal :
       
 10346     {
       
 10347         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10348 
       
 10349         {
       
 10350             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10351             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10352             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10353             symbol_c *IN_type_symbol = NULL;
       
 10354             
       
 10355             /* Get the value from a foo(<param_value>) style call */
       
 10356             if (IN_param_value == NULL)
       
 10357               IN_param_value = function_call_param_iterator.next_nf();
       
 10358             if (IN_param_value != NULL) {
       
 10359               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10360               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10361             }
       
 10362             
       
 10363             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10364             {
       
 10365         
       
 10366                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 10367                 return return_type_symbol;
       
 10368                 
       
 10369             }
       
 10370             
       
 10371             
       
 10372             ERROR;
       
 10373         }
       
 10374         
       
 10375     }/*function_usint_to_lreal*/
       
 10376     break;
       
 10377 
       
 10378 /****
       
 10379  *USINT_TO_BYTE
       
 10380  */
       
 10381     case function_usint_to_byte :
       
 10382     {
       
 10383         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10384 
       
 10385         {
       
 10386             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10387             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10388             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10389             symbol_c *IN_type_symbol = NULL;
       
 10390             
       
 10391             /* Get the value from a foo(<param_value>) style call */
       
 10392             if (IN_param_value == NULL)
       
 10393               IN_param_value = function_call_param_iterator.next_nf();
       
 10394             if (IN_param_value != NULL) {
       
 10395               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10396               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10397             }
       
 10398             
       
 10399             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10400             {
       
 10401         
       
 10402                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 10403                 return return_type_symbol;
       
 10404                 
       
 10405             }
       
 10406             
       
 10407             
       
 10408             ERROR;
       
 10409         }
       
 10410         
       
 10411     }/*function_usint_to_byte*/
       
 10412     break;
       
 10413 
       
 10414 /****
       
 10415  *USINT_TO_ULINT
       
 10416  */
       
 10417     case function_usint_to_ulint :
       
 10418     {
       
 10419         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10420 
       
 10421         {
       
 10422             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10423             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10424             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10425             symbol_c *IN_type_symbol = NULL;
       
 10426             
       
 10427             /* Get the value from a foo(<param_value>) style call */
       
 10428             if (IN_param_value == NULL)
       
 10429               IN_param_value = function_call_param_iterator.next_nf();
       
 10430             if (IN_param_value != NULL) {
       
 10431               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10432               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10433             }
       
 10434             
       
 10435             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10436             {
       
 10437         
       
 10438                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10439                 return return_type_symbol;
       
 10440                 
       
 10441             }
       
 10442             
       
 10443             
       
 10444             ERROR;
       
 10445         }
       
 10446         
       
 10447     }/*function_usint_to_ulint*/
       
 10448     break;
       
 10449 
       
 10450 /****
       
 10451  *USINT_TO_BOOL
       
 10452  */
       
 10453     case function_usint_to_bool :
       
 10454     {
       
 10455         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10456 
       
 10457         {
       
 10458             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10459             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10460             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10461             symbol_c *IN_type_symbol = NULL;
       
 10462             
       
 10463             /* Get the value from a foo(<param_value>) style call */
       
 10464             if (IN_param_value == NULL)
       
 10465               IN_param_value = function_call_param_iterator.next_nf();
       
 10466             if (IN_param_value != NULL) {
       
 10467               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10468               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10469             }
       
 10470             
       
 10471             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10472             {
       
 10473         
       
 10474                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 10475                 return return_type_symbol;
       
 10476                 
       
 10477             }
       
 10478             
       
 10479             
       
 10480             ERROR;
       
 10481         }
       
 10482         
       
 10483     }/*function_usint_to_bool*/
       
 10484     break;
       
 10485 
       
 10486 /****
       
 10487  *USINT_TO_TIME
       
 10488  */
       
 10489     case function_usint_to_time :
       
 10490     {
       
 10491         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10492 
       
 10493         {
       
 10494             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10495             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10496             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10497             symbol_c *IN_type_symbol = NULL;
       
 10498             
       
 10499             /* Get the value from a foo(<param_value>) style call */
       
 10500             if (IN_param_value == NULL)
       
 10501               IN_param_value = function_call_param_iterator.next_nf();
       
 10502             if (IN_param_value != NULL) {
       
 10503               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10504               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10505             }
       
 10506             
       
 10507             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10508             {
       
 10509         
       
 10510                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 10511                 return return_type_symbol;
       
 10512                 
       
 10513             }
       
 10514             
       
 10515             
       
 10516             ERROR;
       
 10517         }
       
 10518         
       
 10519     }/*function_usint_to_time*/
       
 10520     break;
       
 10521 
       
 10522 /****
       
 10523  *USINT_TO_INT
       
 10524  */
       
 10525     case function_usint_to_int :
       
 10526     {
       
 10527         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 10528 
       
 10529         {
       
 10530             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10531             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10532             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10533             symbol_c *IN_type_symbol = NULL;
       
 10534             
       
 10535             /* Get the value from a foo(<param_value>) style call */
       
 10536             if (IN_param_value == NULL)
       
 10537               IN_param_value = function_call_param_iterator.next_nf();
       
 10538             if (IN_param_value != NULL) {
       
 10539               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10540               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10541             }
       
 10542             
       
 10543             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 10544             {
       
 10545         
       
 10546                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 10547                 return return_type_symbol;
       
 10548                 
       
 10549             }
       
 10550             
       
 10551             
       
 10552             ERROR;
       
 10553         }
       
 10554         
       
 10555     }/*function_usint_to_int*/
       
 10556     break;
       
 10557 
       
 10558 /****
       
 10559  *ULINT_TO_REAL
       
 10560  */
       
 10561     case function_ulint_to_real :
       
 10562     {
       
 10563         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10564 
       
 10565         {
       
 10566             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10567             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10568             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10569             symbol_c *IN_type_symbol = NULL;
       
 10570             
       
 10571             /* Get the value from a foo(<param_value>) style call */
       
 10572             if (IN_param_value == NULL)
       
 10573               IN_param_value = function_call_param_iterator.next_nf();
       
 10574             if (IN_param_value != NULL) {
       
 10575               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10576               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10577             }
       
 10578             
       
 10579             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10580             {
       
 10581         
       
 10582                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 10583                 return return_type_symbol;
       
 10584                 
       
 10585             }
       
 10586             
       
 10587             
       
 10588             ERROR;
       
 10589         }
       
 10590         
       
 10591     }/*function_ulint_to_real*/
       
 10592     break;
       
 10593 
       
 10594 /****
       
 10595  *ULINT_TO_SINT
       
 10596  */
       
 10597     case function_ulint_to_sint :
       
 10598     {
       
 10599         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10600 
       
 10601         {
       
 10602             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10603             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10604             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10605             symbol_c *IN_type_symbol = NULL;
       
 10606             
       
 10607             /* Get the value from a foo(<param_value>) style call */
       
 10608             if (IN_param_value == NULL)
       
 10609               IN_param_value = function_call_param_iterator.next_nf();
       
 10610             if (IN_param_value != NULL) {
       
 10611               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10612               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10613             }
       
 10614             
       
 10615             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10616             {
       
 10617         
       
 10618                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 10619                 return return_type_symbol;
       
 10620                 
       
 10621             }
       
 10622             
       
 10623             
       
 10624             ERROR;
       
 10625         }
       
 10626         
       
 10627     }/*function_ulint_to_sint*/
       
 10628     break;
       
 10629 
       
 10630 /****
       
 10631  *ULINT_TO_LINT
       
 10632  */
       
 10633     case function_ulint_to_lint :
       
 10634     {
       
 10635         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10636 
       
 10637         {
       
 10638             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10639             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10640             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10641             symbol_c *IN_type_symbol = NULL;
       
 10642             
       
 10643             /* Get the value from a foo(<param_value>) style call */
       
 10644             if (IN_param_value == NULL)
       
 10645               IN_param_value = function_call_param_iterator.next_nf();
       
 10646             if (IN_param_value != NULL) {
       
 10647               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10648               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10649             }
       
 10650             
       
 10651             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10652             {
       
 10653         
       
 10654                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 10655                 return return_type_symbol;
       
 10656                 
       
 10657             }
       
 10658             
       
 10659             
       
 10660             ERROR;
       
 10661         }
       
 10662         
       
 10663     }/*function_ulint_to_lint*/
       
 10664     break;
       
 10665 
       
 10666 /****
       
 10667  *ULINT_TO_DINT
       
 10668  */
       
 10669     case function_ulint_to_dint :
       
 10670     {
       
 10671         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10672 
       
 10673         {
       
 10674             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10675             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10676             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10677             symbol_c *IN_type_symbol = NULL;
       
 10678             
       
 10679             /* Get the value from a foo(<param_value>) style call */
       
 10680             if (IN_param_value == NULL)
       
 10681               IN_param_value = function_call_param_iterator.next_nf();
       
 10682             if (IN_param_value != NULL) {
       
 10683               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10684               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10685             }
       
 10686             
       
 10687             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10688             {
       
 10689         
       
 10690                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 10691                 return return_type_symbol;
       
 10692                 
       
 10693             }
       
 10694             
       
 10695             
       
 10696             ERROR;
       
 10697         }
       
 10698         
       
 10699     }/*function_ulint_to_dint*/
       
 10700     break;
       
 10701 
       
 10702 /****
       
 10703  *ULINT_TO_DATE
       
 10704  */
       
 10705     case function_ulint_to_date :
       
 10706     {
       
 10707         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10708 
       
 10709         {
       
 10710             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10711             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10712             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10713             symbol_c *IN_type_symbol = NULL;
       
 10714             
       
 10715             /* Get the value from a foo(<param_value>) style call */
       
 10716             if (IN_param_value == NULL)
       
 10717               IN_param_value = function_call_param_iterator.next_nf();
       
 10718             if (IN_param_value != NULL) {
       
 10719               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10720               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10721             }
       
 10722             
       
 10723             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10724             {
       
 10725         
       
 10726                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 10727                 return return_type_symbol;
       
 10728                 
       
 10729             }
       
 10730             
       
 10731             
       
 10732             ERROR;
       
 10733         }
       
 10734         
       
 10735     }/*function_ulint_to_date*/
       
 10736     break;
       
 10737 
       
 10738 /****
       
 10739  *ULINT_TO_DWORD
       
 10740  */
       
 10741     case function_ulint_to_dword :
       
 10742     {
       
 10743         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10744 
       
 10745         {
       
 10746             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10747             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10748             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10749             symbol_c *IN_type_symbol = NULL;
       
 10750             
       
 10751             /* Get the value from a foo(<param_value>) style call */
       
 10752             if (IN_param_value == NULL)
       
 10753               IN_param_value = function_call_param_iterator.next_nf();
       
 10754             if (IN_param_value != NULL) {
       
 10755               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10756               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10757             }
       
 10758             
       
 10759             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10760             {
       
 10761         
       
 10762                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 10763                 return return_type_symbol;
       
 10764                 
       
 10765             }
       
 10766             
       
 10767             
       
 10768             ERROR;
       
 10769         }
       
 10770         
       
 10771     }/*function_ulint_to_dword*/
       
 10772     break;
       
 10773 
       
 10774 /****
       
 10775  *ULINT_TO_DT
       
 10776  */
       
 10777     case function_ulint_to_dt :
       
 10778     {
       
 10779         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10780 
       
 10781         {
       
 10782             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10783             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10784             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10785             symbol_c *IN_type_symbol = NULL;
       
 10786             
       
 10787             /* Get the value from a foo(<param_value>) style call */
       
 10788             if (IN_param_value == NULL)
       
 10789               IN_param_value = function_call_param_iterator.next_nf();
       
 10790             if (IN_param_value != NULL) {
       
 10791               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10792               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10793             }
       
 10794             
       
 10795             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10796             {
       
 10797         
       
 10798                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 10799                 return return_type_symbol;
       
 10800                 
       
 10801             }
       
 10802             
       
 10803             
       
 10804             ERROR;
       
 10805         }
       
 10806         
       
 10807     }/*function_ulint_to_dt*/
       
 10808     break;
       
 10809 
       
 10810 /****
       
 10811  *ULINT_TO_TOD
       
 10812  */
       
 10813     case function_ulint_to_tod :
       
 10814     {
       
 10815         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10816 
       
 10817         {
       
 10818             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10819             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10820             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10821             symbol_c *IN_type_symbol = NULL;
       
 10822             
       
 10823             /* Get the value from a foo(<param_value>) style call */
       
 10824             if (IN_param_value == NULL)
       
 10825               IN_param_value = function_call_param_iterator.next_nf();
       
 10826             if (IN_param_value != NULL) {
       
 10827               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10828               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10829             }
       
 10830             
       
 10831             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10832             {
       
 10833         
       
 10834                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 10835                 return return_type_symbol;
       
 10836                 
       
 10837             }
       
 10838             
       
 10839             
       
 10840             ERROR;
       
 10841         }
       
 10842         
       
 10843     }/*function_ulint_to_tod*/
       
 10844     break;
       
 10845 
       
 10846 /****
       
 10847  *ULINT_TO_UDINT
       
 10848  */
       
 10849     case function_ulint_to_udint :
       
 10850     {
       
 10851         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10852 
       
 10853         {
       
 10854             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10855             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10856             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10857             symbol_c *IN_type_symbol = NULL;
       
 10858             
       
 10859             /* Get the value from a foo(<param_value>) style call */
       
 10860             if (IN_param_value == NULL)
       
 10861               IN_param_value = function_call_param_iterator.next_nf();
       
 10862             if (IN_param_value != NULL) {
       
 10863               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10864               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10865             }
       
 10866             
       
 10867             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10868             {
       
 10869         
       
 10870                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 10871                 return return_type_symbol;
       
 10872                 
       
 10873             }
       
 10874             
       
 10875             
       
 10876             ERROR;
       
 10877         }
       
 10878         
       
 10879     }/*function_ulint_to_udint*/
       
 10880     break;
       
 10881 
       
 10882 /****
       
 10883  *ULINT_TO_WORD
       
 10884  */
       
 10885     case function_ulint_to_word :
       
 10886     {
       
 10887         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10888 
       
 10889         {
       
 10890             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10891             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10892             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10893             symbol_c *IN_type_symbol = NULL;
       
 10894             
       
 10895             /* Get the value from a foo(<param_value>) style call */
       
 10896             if (IN_param_value == NULL)
       
 10897               IN_param_value = function_call_param_iterator.next_nf();
       
 10898             if (IN_param_value != NULL) {
       
 10899               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10900               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10901             }
       
 10902             
       
 10903             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10904             {
       
 10905         
       
 10906                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 10907                 return return_type_symbol;
       
 10908                 
       
 10909             }
       
 10910             
       
 10911             
       
 10912             ERROR;
       
 10913         }
       
 10914         
       
 10915     }/*function_ulint_to_word*/
       
 10916     break;
       
 10917 
       
 10918 /****
       
 10919  *ULINT_TO_STRING
       
 10920  */
       
 10921     case function_ulint_to_string :
       
 10922     {
       
 10923         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10924 
       
 10925         {
       
 10926             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10927             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10928             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10929             symbol_c *IN_type_symbol = NULL;
       
 10930             
       
 10931             /* Get the value from a foo(<param_value>) style call */
       
 10932             if (IN_param_value == NULL)
       
 10933               IN_param_value = function_call_param_iterator.next_nf();
       
 10934             if (IN_param_value != NULL) {
       
 10935               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10936               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10937             }
       
 10938             
       
 10939             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10940             {
       
 10941         
       
 10942                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 10943                 return return_type_symbol;
       
 10944                 
       
 10945             }
       
 10946             
       
 10947             
       
 10948             ERROR;
       
 10949         }
       
 10950         
       
 10951     }/*function_ulint_to_string*/
       
 10952     break;
       
 10953 
       
 10954 /****
       
 10955  *ULINT_TO_LWORD
       
 10956  */
       
 10957     case function_ulint_to_lword :
       
 10958     {
       
 10959         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10960 
       
 10961         {
       
 10962             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10963             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 10964             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 10965             symbol_c *IN_type_symbol = NULL;
       
 10966             
       
 10967             /* Get the value from a foo(<param_value>) style call */
       
 10968             if (IN_param_value == NULL)
       
 10969               IN_param_value = function_call_param_iterator.next_nf();
       
 10970             if (IN_param_value != NULL) {
       
 10971               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 10972               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 10973             }
       
 10974             
       
 10975             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 10976             {
       
 10977         
       
 10978                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 10979                 return return_type_symbol;
       
 10980                 
       
 10981             }
       
 10982             
       
 10983             
       
 10984             ERROR;
       
 10985         }
       
 10986         
       
 10987     }/*function_ulint_to_lword*/
       
 10988     break;
       
 10989 
       
 10990 /****
       
 10991  *ULINT_TO_UINT
       
 10992  */
       
 10993     case function_ulint_to_uint :
       
 10994     {
       
 10995         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 10996 
       
 10997         {
       
 10998             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 10999             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11000             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11001             symbol_c *IN_type_symbol = NULL;
       
 11002             
       
 11003             /* Get the value from a foo(<param_value>) style call */
       
 11004             if (IN_param_value == NULL)
       
 11005               IN_param_value = function_call_param_iterator.next_nf();
       
 11006             if (IN_param_value != NULL) {
       
 11007               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11008               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11009             }
       
 11010             
       
 11011             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11012             {
       
 11013         
       
 11014                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 11015                 return return_type_symbol;
       
 11016                 
       
 11017             }
       
 11018             
       
 11019             
       
 11020             ERROR;
       
 11021         }
       
 11022         
       
 11023     }/*function_ulint_to_uint*/
       
 11024     break;
       
 11025 
       
 11026 /****
       
 11027  *ULINT_TO_LREAL
       
 11028  */
       
 11029     case function_ulint_to_lreal :
       
 11030     {
       
 11031         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11032 
       
 11033         {
       
 11034             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11035             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11036             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11037             symbol_c *IN_type_symbol = NULL;
       
 11038             
       
 11039             /* Get the value from a foo(<param_value>) style call */
       
 11040             if (IN_param_value == NULL)
       
 11041               IN_param_value = function_call_param_iterator.next_nf();
       
 11042             if (IN_param_value != NULL) {
       
 11043               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11044               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11045             }
       
 11046             
       
 11047             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11048             {
       
 11049         
       
 11050                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 11051                 return return_type_symbol;
       
 11052                 
       
 11053             }
       
 11054             
       
 11055             
       
 11056             ERROR;
       
 11057         }
       
 11058         
       
 11059     }/*function_ulint_to_lreal*/
       
 11060     break;
       
 11061 
       
 11062 /****
       
 11063  *ULINT_TO_BYTE
       
 11064  */
       
 11065     case function_ulint_to_byte :
       
 11066     {
       
 11067         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11068 
       
 11069         {
       
 11070             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11071             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11072             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11073             symbol_c *IN_type_symbol = NULL;
       
 11074             
       
 11075             /* Get the value from a foo(<param_value>) style call */
       
 11076             if (IN_param_value == NULL)
       
 11077               IN_param_value = function_call_param_iterator.next_nf();
       
 11078             if (IN_param_value != NULL) {
       
 11079               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11080               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11081             }
       
 11082             
       
 11083             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11084             {
       
 11085         
       
 11086                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 11087                 return return_type_symbol;
       
 11088                 
       
 11089             }
       
 11090             
       
 11091             
       
 11092             ERROR;
       
 11093         }
       
 11094         
       
 11095     }/*function_ulint_to_byte*/
       
 11096     break;
       
 11097 
       
 11098 /****
       
 11099  *ULINT_TO_USINT
       
 11100  */
       
 11101     case function_ulint_to_usint :
       
 11102     {
       
 11103         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11104 
       
 11105         {
       
 11106             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11107             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11108             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11109             symbol_c *IN_type_symbol = NULL;
       
 11110             
       
 11111             /* Get the value from a foo(<param_value>) style call */
       
 11112             if (IN_param_value == NULL)
       
 11113               IN_param_value = function_call_param_iterator.next_nf();
       
 11114             if (IN_param_value != NULL) {
       
 11115               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11116               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11117             }
       
 11118             
       
 11119             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11120             {
       
 11121         
       
 11122                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 11123                 return return_type_symbol;
       
 11124                 
       
 11125             }
       
 11126             
       
 11127             
       
 11128             ERROR;
       
 11129         }
       
 11130         
       
 11131     }/*function_ulint_to_usint*/
       
 11132     break;
       
 11133 
       
 11134 /****
       
 11135  *ULINT_TO_BOOL
       
 11136  */
       
 11137     case function_ulint_to_bool :
       
 11138     {
       
 11139         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11140 
       
 11141         {
       
 11142             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11143             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11144             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11145             symbol_c *IN_type_symbol = NULL;
       
 11146             
       
 11147             /* Get the value from a foo(<param_value>) style call */
       
 11148             if (IN_param_value == NULL)
       
 11149               IN_param_value = function_call_param_iterator.next_nf();
       
 11150             if (IN_param_value != NULL) {
       
 11151               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11152               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11153             }
       
 11154             
       
 11155             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11156             {
       
 11157         
       
 11158                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 11159                 return return_type_symbol;
       
 11160                 
       
 11161             }
       
 11162             
       
 11163             
       
 11164             ERROR;
       
 11165         }
       
 11166         
       
 11167     }/*function_ulint_to_bool*/
       
 11168     break;
       
 11169 
       
 11170 /****
       
 11171  *ULINT_TO_TIME
       
 11172  */
       
 11173     case function_ulint_to_time :
       
 11174     {
       
 11175         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11176 
       
 11177         {
       
 11178             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11179             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11180             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11181             symbol_c *IN_type_symbol = NULL;
       
 11182             
       
 11183             /* Get the value from a foo(<param_value>) style call */
       
 11184             if (IN_param_value == NULL)
       
 11185               IN_param_value = function_call_param_iterator.next_nf();
       
 11186             if (IN_param_value != NULL) {
       
 11187               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11188               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11189             }
       
 11190             
       
 11191             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11192             {
       
 11193         
       
 11194                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 11195                 return return_type_symbol;
       
 11196                 
       
 11197             }
       
 11198             
       
 11199             
       
 11200             ERROR;
       
 11201         }
       
 11202         
       
 11203     }/*function_ulint_to_time*/
       
 11204     break;
       
 11205 
       
 11206 /****
       
 11207  *ULINT_TO_INT
       
 11208  */
       
 11209     case function_ulint_to_int :
       
 11210     {
       
 11211         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11212 
       
 11213         {
       
 11214             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11215             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11216             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11217             symbol_c *IN_type_symbol = NULL;
       
 11218             
       
 11219             /* Get the value from a foo(<param_value>) style call */
       
 11220             if (IN_param_value == NULL)
       
 11221               IN_param_value = function_call_param_iterator.next_nf();
       
 11222             if (IN_param_value != NULL) {
       
 11223               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11224               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11225             }
       
 11226             
       
 11227             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 11228             {
       
 11229         
       
 11230                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 11231                 return return_type_symbol;
       
 11232                 
       
 11233             }
       
 11234             
       
 11235             
       
 11236             ERROR;
       
 11237         }
       
 11238         
       
 11239     }/*function_ulint_to_int*/
       
 11240     break;
       
 11241 
       
 11242 /****
       
 11243  *BOOL_TO_REAL
       
 11244  */
       
 11245     case function_bool_to_real :
       
 11246     {
       
 11247         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11248 
       
 11249         {
       
 11250             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11251             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11252             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11253             symbol_c *IN_type_symbol = NULL;
       
 11254             
       
 11255             /* Get the value from a foo(<param_value>) style call */
       
 11256             if (IN_param_value == NULL)
       
 11257               IN_param_value = function_call_param_iterator.next_nf();
       
 11258             if (IN_param_value != NULL) {
       
 11259               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11260               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11261             }
       
 11262             
       
 11263             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11264             {
       
 11265         
       
 11266                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 11267                 return return_type_symbol;
       
 11268                 
       
 11269             }
       
 11270             
       
 11271             
       
 11272             ERROR;
       
 11273         }
       
 11274         
       
 11275     }/*function_bool_to_real*/
       
 11276     break;
       
 11277 
       
 11278 /****
       
 11279  *BOOL_TO_SINT
       
 11280  */
       
 11281     case function_bool_to_sint :
       
 11282     {
       
 11283         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11284 
       
 11285         {
       
 11286             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11287             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11288             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11289             symbol_c *IN_type_symbol = NULL;
       
 11290             
       
 11291             /* Get the value from a foo(<param_value>) style call */
       
 11292             if (IN_param_value == NULL)
       
 11293               IN_param_value = function_call_param_iterator.next_nf();
       
 11294             if (IN_param_value != NULL) {
       
 11295               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11296               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11297             }
       
 11298             
       
 11299             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11300             {
       
 11301         
       
 11302                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 11303                 return return_type_symbol;
       
 11304                 
       
 11305             }
       
 11306             
       
 11307             
       
 11308             ERROR;
       
 11309         }
       
 11310         
       
 11311     }/*function_bool_to_sint*/
       
 11312     break;
       
 11313 
       
 11314 /****
       
 11315  *BOOL_TO_LINT
       
 11316  */
       
 11317     case function_bool_to_lint :
       
 11318     {
       
 11319         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11320 
       
 11321         {
       
 11322             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11323             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11324             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11325             symbol_c *IN_type_symbol = NULL;
       
 11326             
       
 11327             /* Get the value from a foo(<param_value>) style call */
       
 11328             if (IN_param_value == NULL)
       
 11329               IN_param_value = function_call_param_iterator.next_nf();
       
 11330             if (IN_param_value != NULL) {
       
 11331               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11332               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11333             }
       
 11334             
       
 11335             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11336             {
       
 11337         
       
 11338                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 11339                 return return_type_symbol;
       
 11340                 
       
 11341             }
       
 11342             
       
 11343             
       
 11344             ERROR;
       
 11345         }
       
 11346         
       
 11347     }/*function_bool_to_lint*/
       
 11348     break;
       
 11349 
       
 11350 /****
       
 11351  *BOOL_TO_DINT
       
 11352  */
       
 11353     case function_bool_to_dint :
       
 11354     {
       
 11355         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11356 
       
 11357         {
       
 11358             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11359             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11360             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11361             symbol_c *IN_type_symbol = NULL;
       
 11362             
       
 11363             /* Get the value from a foo(<param_value>) style call */
       
 11364             if (IN_param_value == NULL)
       
 11365               IN_param_value = function_call_param_iterator.next_nf();
       
 11366             if (IN_param_value != NULL) {
       
 11367               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11368               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11369             }
       
 11370             
       
 11371             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11372             {
       
 11373         
       
 11374                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 11375                 return return_type_symbol;
       
 11376                 
       
 11377             }
       
 11378             
       
 11379             
       
 11380             ERROR;
       
 11381         }
       
 11382         
       
 11383     }/*function_bool_to_dint*/
       
 11384     break;
       
 11385 
       
 11386 /****
       
 11387  *BOOL_TO_DATE
       
 11388  */
       
 11389     case function_bool_to_date :
       
 11390     {
       
 11391         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11392 
       
 11393         {
       
 11394             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11395             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11396             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11397             symbol_c *IN_type_symbol = NULL;
       
 11398             
       
 11399             /* Get the value from a foo(<param_value>) style call */
       
 11400             if (IN_param_value == NULL)
       
 11401               IN_param_value = function_call_param_iterator.next_nf();
       
 11402             if (IN_param_value != NULL) {
       
 11403               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11404               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11405             }
       
 11406             
       
 11407             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11408             {
       
 11409         
       
 11410                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 11411                 return return_type_symbol;
       
 11412                 
       
 11413             }
       
 11414             
       
 11415             
       
 11416             ERROR;
       
 11417         }
       
 11418         
       
 11419     }/*function_bool_to_date*/
       
 11420     break;
       
 11421 
       
 11422 /****
       
 11423  *BOOL_TO_DWORD
       
 11424  */
       
 11425     case function_bool_to_dword :
       
 11426     {
       
 11427         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11428 
       
 11429         {
       
 11430             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11431             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11432             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11433             symbol_c *IN_type_symbol = NULL;
       
 11434             
       
 11435             /* Get the value from a foo(<param_value>) style call */
       
 11436             if (IN_param_value == NULL)
       
 11437               IN_param_value = function_call_param_iterator.next_nf();
       
 11438             if (IN_param_value != NULL) {
       
 11439               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11440               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11441             }
       
 11442             
       
 11443             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11444             {
       
 11445         
       
 11446                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 11447                 return return_type_symbol;
       
 11448                 
       
 11449             }
       
 11450             
       
 11451             
       
 11452             ERROR;
       
 11453         }
       
 11454         
       
 11455     }/*function_bool_to_dword*/
       
 11456     break;
       
 11457 
       
 11458 /****
       
 11459  *BOOL_TO_DT
       
 11460  */
       
 11461     case function_bool_to_dt :
       
 11462     {
       
 11463         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11464 
       
 11465         {
       
 11466             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11467             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11468             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11469             symbol_c *IN_type_symbol = NULL;
       
 11470             
       
 11471             /* Get the value from a foo(<param_value>) style call */
       
 11472             if (IN_param_value == NULL)
       
 11473               IN_param_value = function_call_param_iterator.next_nf();
       
 11474             if (IN_param_value != NULL) {
       
 11475               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11476               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11477             }
       
 11478             
       
 11479             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11480             {
       
 11481         
       
 11482                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 11483                 return return_type_symbol;
       
 11484                 
       
 11485             }
       
 11486             
       
 11487             
       
 11488             ERROR;
       
 11489         }
       
 11490         
       
 11491     }/*function_bool_to_dt*/
       
 11492     break;
       
 11493 
       
 11494 /****
       
 11495  *BOOL_TO_TOD
       
 11496  */
       
 11497     case function_bool_to_tod :
       
 11498     {
       
 11499         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11500 
       
 11501         {
       
 11502             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11503             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11504             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11505             symbol_c *IN_type_symbol = NULL;
       
 11506             
       
 11507             /* Get the value from a foo(<param_value>) style call */
       
 11508             if (IN_param_value == NULL)
       
 11509               IN_param_value = function_call_param_iterator.next_nf();
       
 11510             if (IN_param_value != NULL) {
       
 11511               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11512               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11513             }
       
 11514             
       
 11515             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11516             {
       
 11517         
       
 11518                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 11519                 return return_type_symbol;
       
 11520                 
       
 11521             }
       
 11522             
       
 11523             
       
 11524             ERROR;
       
 11525         }
       
 11526         
       
 11527     }/*function_bool_to_tod*/
       
 11528     break;
       
 11529 
       
 11530 /****
       
 11531  *BOOL_TO_UDINT
       
 11532  */
       
 11533     case function_bool_to_udint :
       
 11534     {
       
 11535         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11536 
       
 11537         {
       
 11538             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11539             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11540             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11541             symbol_c *IN_type_symbol = NULL;
       
 11542             
       
 11543             /* Get the value from a foo(<param_value>) style call */
       
 11544             if (IN_param_value == NULL)
       
 11545               IN_param_value = function_call_param_iterator.next_nf();
       
 11546             if (IN_param_value != NULL) {
       
 11547               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11548               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11549             }
       
 11550             
       
 11551             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11552             {
       
 11553         
       
 11554                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 11555                 return return_type_symbol;
       
 11556                 
       
 11557             }
       
 11558             
       
 11559             
       
 11560             ERROR;
       
 11561         }
       
 11562         
       
 11563     }/*function_bool_to_udint*/
       
 11564     break;
       
 11565 
       
 11566 /****
       
 11567  *BOOL_TO_WORD
       
 11568  */
       
 11569     case function_bool_to_word :
       
 11570     {
       
 11571         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11572 
       
 11573         {
       
 11574             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11575             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11576             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11577             symbol_c *IN_type_symbol = NULL;
       
 11578             
       
 11579             /* Get the value from a foo(<param_value>) style call */
       
 11580             if (IN_param_value == NULL)
       
 11581               IN_param_value = function_call_param_iterator.next_nf();
       
 11582             if (IN_param_value != NULL) {
       
 11583               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11584               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11585             }
       
 11586             
       
 11587             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11588             {
       
 11589         
       
 11590                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 11591                 return return_type_symbol;
       
 11592                 
       
 11593             }
       
 11594             
       
 11595             
       
 11596             ERROR;
       
 11597         }
       
 11598         
       
 11599     }/*function_bool_to_word*/
       
 11600     break;
       
 11601 
       
 11602 /****
       
 11603  *BOOL_TO_STRING
       
 11604  */
       
 11605     case function_bool_to_string :
       
 11606     {
       
 11607         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11608 
       
 11609         {
       
 11610             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11611             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11612             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11613             symbol_c *IN_type_symbol = NULL;
       
 11614             
       
 11615             /* Get the value from a foo(<param_value>) style call */
       
 11616             if (IN_param_value == NULL)
       
 11617               IN_param_value = function_call_param_iterator.next_nf();
       
 11618             if (IN_param_value != NULL) {
       
 11619               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11620               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11621             }
       
 11622             
       
 11623             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11624             {
       
 11625         
       
 11626                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 11627                 return return_type_symbol;
       
 11628                 
       
 11629             }
       
 11630             
       
 11631             
       
 11632             ERROR;
       
 11633         }
       
 11634         
       
 11635     }/*function_bool_to_string*/
       
 11636     break;
       
 11637 
       
 11638 /****
       
 11639  *BOOL_TO_LWORD
       
 11640  */
       
 11641     case function_bool_to_lword :
       
 11642     {
       
 11643         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11644 
       
 11645         {
       
 11646             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11647             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11648             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11649             symbol_c *IN_type_symbol = NULL;
       
 11650             
       
 11651             /* Get the value from a foo(<param_value>) style call */
       
 11652             if (IN_param_value == NULL)
       
 11653               IN_param_value = function_call_param_iterator.next_nf();
       
 11654             if (IN_param_value != NULL) {
       
 11655               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11656               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11657             }
       
 11658             
       
 11659             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11660             {
       
 11661         
       
 11662                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 11663                 return return_type_symbol;
       
 11664                 
       
 11665             }
       
 11666             
       
 11667             
       
 11668             ERROR;
       
 11669         }
       
 11670         
       
 11671     }/*function_bool_to_lword*/
       
 11672     break;
       
 11673 
       
 11674 /****
       
 11675  *BOOL_TO_UINT
       
 11676  */
       
 11677     case function_bool_to_uint :
       
 11678     {
       
 11679         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11680 
       
 11681         {
       
 11682             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11683             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11684             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11685             symbol_c *IN_type_symbol = NULL;
       
 11686             
       
 11687             /* Get the value from a foo(<param_value>) style call */
       
 11688             if (IN_param_value == NULL)
       
 11689               IN_param_value = function_call_param_iterator.next_nf();
       
 11690             if (IN_param_value != NULL) {
       
 11691               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11692               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11693             }
       
 11694             
       
 11695             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11696             {
       
 11697         
       
 11698                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 11699                 return return_type_symbol;
       
 11700                 
       
 11701             }
       
 11702             
       
 11703             
       
 11704             ERROR;
       
 11705         }
       
 11706         
       
 11707     }/*function_bool_to_uint*/
       
 11708     break;
       
 11709 
       
 11710 /****
       
 11711  *BOOL_TO_LREAL
       
 11712  */
       
 11713     case function_bool_to_lreal :
       
 11714     {
       
 11715         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11716 
       
 11717         {
       
 11718             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11719             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11720             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11721             symbol_c *IN_type_symbol = NULL;
       
 11722             
       
 11723             /* Get the value from a foo(<param_value>) style call */
       
 11724             if (IN_param_value == NULL)
       
 11725               IN_param_value = function_call_param_iterator.next_nf();
       
 11726             if (IN_param_value != NULL) {
       
 11727               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11728               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11729             }
       
 11730             
       
 11731             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11732             {
       
 11733         
       
 11734                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 11735                 return return_type_symbol;
       
 11736                 
       
 11737             }
       
 11738             
       
 11739             
       
 11740             ERROR;
       
 11741         }
       
 11742         
       
 11743     }/*function_bool_to_lreal*/
       
 11744     break;
       
 11745 
       
 11746 /****
       
 11747  *BOOL_TO_BYTE
       
 11748  */
       
 11749     case function_bool_to_byte :
       
 11750     {
       
 11751         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11752 
       
 11753         {
       
 11754             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11755             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11756             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11757             symbol_c *IN_type_symbol = NULL;
       
 11758             
       
 11759             /* Get the value from a foo(<param_value>) style call */
       
 11760             if (IN_param_value == NULL)
       
 11761               IN_param_value = function_call_param_iterator.next_nf();
       
 11762             if (IN_param_value != NULL) {
       
 11763               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11764               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11765             }
       
 11766             
       
 11767             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11768             {
       
 11769         
       
 11770                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 11771                 return return_type_symbol;
       
 11772                 
       
 11773             }
       
 11774             
       
 11775             
       
 11776             ERROR;
       
 11777         }
       
 11778         
       
 11779     }/*function_bool_to_byte*/
       
 11780     break;
       
 11781 
       
 11782 /****
       
 11783  *BOOL_TO_USINT
       
 11784  */
       
 11785     case function_bool_to_usint :
       
 11786     {
       
 11787         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11788 
       
 11789         {
       
 11790             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11791             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11792             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11793             symbol_c *IN_type_symbol = NULL;
       
 11794             
       
 11795             /* Get the value from a foo(<param_value>) style call */
       
 11796             if (IN_param_value == NULL)
       
 11797               IN_param_value = function_call_param_iterator.next_nf();
       
 11798             if (IN_param_value != NULL) {
       
 11799               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11800               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11801             }
       
 11802             
       
 11803             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11804             {
       
 11805         
       
 11806                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 11807                 return return_type_symbol;
       
 11808                 
       
 11809             }
       
 11810             
       
 11811             
       
 11812             ERROR;
       
 11813         }
       
 11814         
       
 11815     }/*function_bool_to_usint*/
       
 11816     break;
       
 11817 
       
 11818 /****
       
 11819  *BOOL_TO_ULINT
       
 11820  */
       
 11821     case function_bool_to_ulint :
       
 11822     {
       
 11823         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11824 
       
 11825         {
       
 11826             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11827             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11828             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11829             symbol_c *IN_type_symbol = NULL;
       
 11830             
       
 11831             /* Get the value from a foo(<param_value>) style call */
       
 11832             if (IN_param_value == NULL)
       
 11833               IN_param_value = function_call_param_iterator.next_nf();
       
 11834             if (IN_param_value != NULL) {
       
 11835               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11836               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11837             }
       
 11838             
       
 11839             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11840             {
       
 11841         
       
 11842                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 11843                 return return_type_symbol;
       
 11844                 
       
 11845             }
       
 11846             
       
 11847             
       
 11848             ERROR;
       
 11849         }
       
 11850         
       
 11851     }/*function_bool_to_ulint*/
       
 11852     break;
       
 11853 
       
 11854 /****
       
 11855  *BOOL_TO_TIME
       
 11856  */
       
 11857     case function_bool_to_time :
       
 11858     {
       
 11859         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11860 
       
 11861         {
       
 11862             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11863             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11864             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11865             symbol_c *IN_type_symbol = NULL;
       
 11866             
       
 11867             /* Get the value from a foo(<param_value>) style call */
       
 11868             if (IN_param_value == NULL)
       
 11869               IN_param_value = function_call_param_iterator.next_nf();
       
 11870             if (IN_param_value != NULL) {
       
 11871               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11872               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11873             }
       
 11874             
       
 11875             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11876             {
       
 11877         
       
 11878                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 11879                 return return_type_symbol;
       
 11880                 
       
 11881             }
       
 11882             
       
 11883             
       
 11884             ERROR;
       
 11885         }
       
 11886         
       
 11887     }/*function_bool_to_time*/
       
 11888     break;
       
 11889 
       
 11890 /****
       
 11891  *BOOL_TO_INT
       
 11892  */
       
 11893     case function_bool_to_int :
       
 11894     {
       
 11895         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 11896 
       
 11897         {
       
 11898             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11899             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11900             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11901             symbol_c *IN_type_symbol = NULL;
       
 11902             
       
 11903             /* Get the value from a foo(<param_value>) style call */
       
 11904             if (IN_param_value == NULL)
       
 11905               IN_param_value = function_call_param_iterator.next_nf();
       
 11906             if (IN_param_value != NULL) {
       
 11907               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11908               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11909             }
       
 11910             
       
 11911             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 11912             {
       
 11913         
       
 11914                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 11915                 return return_type_symbol;
       
 11916                 
       
 11917             }
       
 11918             
       
 11919             
       
 11920             ERROR;
       
 11921         }
       
 11922         
       
 11923     }/*function_bool_to_int*/
       
 11924     break;
       
 11925 
       
 11926 /****
       
 11927  *TIME_TO_REAL
       
 11928  */
       
 11929     case function_time_to_real :
       
 11930     {
       
 11931         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 11932 
       
 11933         {
       
 11934             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11935             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11936             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11937             symbol_c *IN_type_symbol = NULL;
       
 11938             
       
 11939             /* Get the value from a foo(<param_value>) style call */
       
 11940             if (IN_param_value == NULL)
       
 11941               IN_param_value = function_call_param_iterator.next_nf();
       
 11942             if (IN_param_value != NULL) {
       
 11943               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11944               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11945             }
       
 11946             
       
 11947             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 11948             {
       
 11949         
       
 11950                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 11951                 return return_type_symbol;
       
 11952                 
       
 11953             }
       
 11954             
       
 11955             
       
 11956             ERROR;
       
 11957         }
       
 11958         
       
 11959     }/*function_time_to_real*/
       
 11960     break;
       
 11961 
       
 11962 /****
       
 11963  *TIME_TO_SINT
       
 11964  */
       
 11965     case function_time_to_sint :
       
 11966     {
       
 11967         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 11968 
       
 11969         {
       
 11970             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 11971             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 11972             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 11973             symbol_c *IN_type_symbol = NULL;
       
 11974             
       
 11975             /* Get the value from a foo(<param_value>) style call */
       
 11976             if (IN_param_value == NULL)
       
 11977               IN_param_value = function_call_param_iterator.next_nf();
       
 11978             if (IN_param_value != NULL) {
       
 11979               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 11980               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 11981             }
       
 11982             
       
 11983             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 11984             {
       
 11985         
       
 11986                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 11987                 return return_type_symbol;
       
 11988                 
       
 11989             }
       
 11990             
       
 11991             
       
 11992             ERROR;
       
 11993         }
       
 11994         
       
 11995     }/*function_time_to_sint*/
       
 11996     break;
       
 11997 
       
 11998 /****
       
 11999  *TIME_TO_LINT
       
 12000  */
       
 12001     case function_time_to_lint :
       
 12002     {
       
 12003         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12004 
       
 12005         {
       
 12006             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12007             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12008             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12009             symbol_c *IN_type_symbol = NULL;
       
 12010             
       
 12011             /* Get the value from a foo(<param_value>) style call */
       
 12012             if (IN_param_value == NULL)
       
 12013               IN_param_value = function_call_param_iterator.next_nf();
       
 12014             if (IN_param_value != NULL) {
       
 12015               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12016               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12017             }
       
 12018             
       
 12019             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12020             {
       
 12021         
       
 12022                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 12023                 return return_type_symbol;
       
 12024                 
       
 12025             }
       
 12026             
       
 12027             
       
 12028             ERROR;
       
 12029         }
       
 12030         
       
 12031     }/*function_time_to_lint*/
       
 12032     break;
       
 12033 
       
 12034 /****
       
 12035  *TIME_TO_DINT
       
 12036  */
       
 12037     case function_time_to_dint :
       
 12038     {
       
 12039         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12040 
       
 12041         {
       
 12042             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12043             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12044             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12045             symbol_c *IN_type_symbol = NULL;
       
 12046             
       
 12047             /* Get the value from a foo(<param_value>) style call */
       
 12048             if (IN_param_value == NULL)
       
 12049               IN_param_value = function_call_param_iterator.next_nf();
       
 12050             if (IN_param_value != NULL) {
       
 12051               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12052               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12053             }
       
 12054             
       
 12055             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12056             {
       
 12057         
       
 12058                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 12059                 return return_type_symbol;
       
 12060                 
       
 12061             }
       
 12062             
       
 12063             
       
 12064             ERROR;
       
 12065         }
       
 12066         
       
 12067     }/*function_time_to_dint*/
       
 12068     break;
       
 12069 
       
 12070 /****
       
 12071  *TIME_TO_DWORD
       
 12072  */
       
 12073     case function_time_to_dword :
       
 12074     {
       
 12075         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12076 
       
 12077         {
       
 12078             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12079             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12080             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12081             symbol_c *IN_type_symbol = NULL;
       
 12082             
       
 12083             /* Get the value from a foo(<param_value>) style call */
       
 12084             if (IN_param_value == NULL)
       
 12085               IN_param_value = function_call_param_iterator.next_nf();
       
 12086             if (IN_param_value != NULL) {
       
 12087               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12088               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12089             }
       
 12090             
       
 12091             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12092             {
       
 12093         
       
 12094                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 12095                 return return_type_symbol;
       
 12096                 
       
 12097             }
       
 12098             
       
 12099             
       
 12100             ERROR;
       
 12101         }
       
 12102         
       
 12103     }/*function_time_to_dword*/
       
 12104     break;
       
 12105 
       
 12106 /****
       
 12107  *TIME_TO_UDINT
       
 12108  */
       
 12109     case function_time_to_udint :
       
 12110     {
       
 12111         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12112 
       
 12113         {
       
 12114             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12115             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12116             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12117             symbol_c *IN_type_symbol = NULL;
       
 12118             
       
 12119             /* Get the value from a foo(<param_value>) style call */
       
 12120             if (IN_param_value == NULL)
       
 12121               IN_param_value = function_call_param_iterator.next_nf();
       
 12122             if (IN_param_value != NULL) {
       
 12123               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12124               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12125             }
       
 12126             
       
 12127             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12128             {
       
 12129         
       
 12130                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 12131                 return return_type_symbol;
       
 12132                 
       
 12133             }
       
 12134             
       
 12135             
       
 12136             ERROR;
       
 12137         }
       
 12138         
       
 12139     }/*function_time_to_udint*/
       
 12140     break;
       
 12141 
       
 12142 /****
       
 12143  *TIME_TO_WORD
       
 12144  */
       
 12145     case function_time_to_word :
       
 12146     {
       
 12147         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12148 
       
 12149         {
       
 12150             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12151             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12152             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12153             symbol_c *IN_type_symbol = NULL;
       
 12154             
       
 12155             /* Get the value from a foo(<param_value>) style call */
       
 12156             if (IN_param_value == NULL)
       
 12157               IN_param_value = function_call_param_iterator.next_nf();
       
 12158             if (IN_param_value != NULL) {
       
 12159               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12160               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12161             }
       
 12162             
       
 12163             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12164             {
       
 12165         
       
 12166                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 12167                 return return_type_symbol;
       
 12168                 
       
 12169             }
       
 12170             
       
 12171             
       
 12172             ERROR;
       
 12173         }
       
 12174         
       
 12175     }/*function_time_to_word*/
       
 12176     break;
       
 12177 
       
 12178 /****
       
 12179  *TIME_TO_STRING
       
 12180  */
       
 12181     case function_time_to_string :
       
 12182     {
       
 12183         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12184 
       
 12185         {
       
 12186             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12187             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12188             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12189             symbol_c *IN_type_symbol = NULL;
       
 12190             
       
 12191             /* Get the value from a foo(<param_value>) style call */
       
 12192             if (IN_param_value == NULL)
       
 12193               IN_param_value = function_call_param_iterator.next_nf();
       
 12194             if (IN_param_value != NULL) {
       
 12195               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12196               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12197             }
       
 12198             
       
 12199             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12200             {
       
 12201         
       
 12202                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 12203                 return return_type_symbol;
       
 12204                 
       
 12205             }
       
 12206             
       
 12207             
       
 12208             ERROR;
       
 12209         }
       
 12210         
       
 12211     }/*function_time_to_string*/
       
 12212     break;
       
 12213 
       
 12214 /****
       
 12215  *TIME_TO_LWORD
       
 12216  */
       
 12217     case function_time_to_lword :
       
 12218     {
       
 12219         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12220 
       
 12221         {
       
 12222             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12223             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12224             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12225             symbol_c *IN_type_symbol = NULL;
       
 12226             
       
 12227             /* Get the value from a foo(<param_value>) style call */
       
 12228             if (IN_param_value == NULL)
       
 12229               IN_param_value = function_call_param_iterator.next_nf();
       
 12230             if (IN_param_value != NULL) {
       
 12231               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12232               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12233             }
       
 12234             
       
 12235             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12236             {
       
 12237         
       
 12238                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 12239                 return return_type_symbol;
       
 12240                 
       
 12241             }
       
 12242             
       
 12243             
       
 12244             ERROR;
       
 12245         }
       
 12246         
       
 12247     }/*function_time_to_lword*/
       
 12248     break;
       
 12249 
       
 12250 /****
       
 12251  *TIME_TO_UINT
       
 12252  */
       
 12253     case function_time_to_uint :
       
 12254     {
       
 12255         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12256 
       
 12257         {
       
 12258             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12259             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12260             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12261             symbol_c *IN_type_symbol = NULL;
       
 12262             
       
 12263             /* Get the value from a foo(<param_value>) style call */
       
 12264             if (IN_param_value == NULL)
       
 12265               IN_param_value = function_call_param_iterator.next_nf();
       
 12266             if (IN_param_value != NULL) {
       
 12267               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12268               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12269             }
       
 12270             
       
 12271             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12272             {
       
 12273         
       
 12274                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 12275                 return return_type_symbol;
       
 12276                 
       
 12277             }
       
 12278             
       
 12279             
       
 12280             ERROR;
       
 12281         }
       
 12282         
       
 12283     }/*function_time_to_uint*/
       
 12284     break;
       
 12285 
       
 12286 /****
       
 12287  *TIME_TO_LREAL
       
 12288  */
       
 12289     case function_time_to_lreal :
       
 12290     {
       
 12291         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12292 
       
 12293         {
       
 12294             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12295             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12296             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12297             symbol_c *IN_type_symbol = NULL;
       
 12298             
       
 12299             /* Get the value from a foo(<param_value>) style call */
       
 12300             if (IN_param_value == NULL)
       
 12301               IN_param_value = function_call_param_iterator.next_nf();
       
 12302             if (IN_param_value != NULL) {
       
 12303               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12304               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12305             }
       
 12306             
       
 12307             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12308             {
       
 12309         
       
 12310                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 12311                 return return_type_symbol;
       
 12312                 
       
 12313             }
       
 12314             
       
 12315             
       
 12316             ERROR;
       
 12317         }
       
 12318         
       
 12319     }/*function_time_to_lreal*/
       
 12320     break;
       
 12321 
       
 12322 /****
       
 12323  *TIME_TO_BYTE
       
 12324  */
       
 12325     case function_time_to_byte :
       
 12326     {
       
 12327         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12328 
       
 12329         {
       
 12330             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12331             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12332             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12333             symbol_c *IN_type_symbol = NULL;
       
 12334             
       
 12335             /* Get the value from a foo(<param_value>) style call */
       
 12336             if (IN_param_value == NULL)
       
 12337               IN_param_value = function_call_param_iterator.next_nf();
       
 12338             if (IN_param_value != NULL) {
       
 12339               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12340               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12341             }
       
 12342             
       
 12343             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12344             {
       
 12345         
       
 12346                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 12347                 return return_type_symbol;
       
 12348                 
       
 12349             }
       
 12350             
       
 12351             
       
 12352             ERROR;
       
 12353         }
       
 12354         
       
 12355     }/*function_time_to_byte*/
       
 12356     break;
       
 12357 
       
 12358 /****
       
 12359  *TIME_TO_USINT
       
 12360  */
       
 12361     case function_time_to_usint :
       
 12362     {
       
 12363         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12364 
       
 12365         {
       
 12366             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12367             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12368             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12369             symbol_c *IN_type_symbol = NULL;
       
 12370             
       
 12371             /* Get the value from a foo(<param_value>) style call */
       
 12372             if (IN_param_value == NULL)
       
 12373               IN_param_value = function_call_param_iterator.next_nf();
       
 12374             if (IN_param_value != NULL) {
       
 12375               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12376               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12377             }
       
 12378             
       
 12379             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12380             {
       
 12381         
       
 12382                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 12383                 return return_type_symbol;
       
 12384                 
       
 12385             }
       
 12386             
       
 12387             
       
 12388             ERROR;
       
 12389         }
       
 12390         
       
 12391     }/*function_time_to_usint*/
       
 12392     break;
       
 12393 
       
 12394 /****
       
 12395  *TIME_TO_ULINT
       
 12396  */
       
 12397     case function_time_to_ulint :
       
 12398     {
       
 12399         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12400 
       
 12401         {
       
 12402             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12403             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12404             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12405             symbol_c *IN_type_symbol = NULL;
       
 12406             
       
 12407             /* Get the value from a foo(<param_value>) style call */
       
 12408             if (IN_param_value == NULL)
       
 12409               IN_param_value = function_call_param_iterator.next_nf();
       
 12410             if (IN_param_value != NULL) {
       
 12411               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12412               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12413             }
       
 12414             
       
 12415             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12416             {
       
 12417         
       
 12418                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 12419                 return return_type_symbol;
       
 12420                 
       
 12421             }
       
 12422             
       
 12423             
       
 12424             ERROR;
       
 12425         }
       
 12426         
       
 12427     }/*function_time_to_ulint*/
       
 12428     break;
       
 12429 
       
 12430 /****
       
 12431  *TIME_TO_INT
       
 12432  */
       
 12433     case function_time_to_int :
       
 12434     {
       
 12435         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 12436 
       
 12437         {
       
 12438             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12439             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12440             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12441             symbol_c *IN_type_symbol = NULL;
       
 12442             
       
 12443             /* Get the value from a foo(<param_value>) style call */
       
 12444             if (IN_param_value == NULL)
       
 12445               IN_param_value = function_call_param_iterator.next_nf();
       
 12446             if (IN_param_value != NULL) {
       
 12447               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12448               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12449             }
       
 12450             
       
 12451             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 12452             {
       
 12453         
       
 12454                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 12455                 return return_type_symbol;
       
 12456                 
       
 12457             }
       
 12458             
       
 12459             
       
 12460             ERROR;
       
 12461         }
       
 12462         
       
 12463     }/*function_time_to_int*/
       
 12464     break;
       
 12465 
       
 12466 /****
       
 12467  *INT_TO_REAL
       
 12468  */
       
 12469     case function_int_to_real :
       
 12470     {
       
 12471         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12472 
       
 12473         {
       
 12474             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12475             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12476             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12477             symbol_c *IN_type_symbol = NULL;
       
 12478             
       
 12479             /* Get the value from a foo(<param_value>) style call */
       
 12480             if (IN_param_value == NULL)
       
 12481               IN_param_value = function_call_param_iterator.next_nf();
       
 12482             if (IN_param_value != NULL) {
       
 12483               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12484               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12485             }
       
 12486             
       
 12487             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12488             {
       
 12489         
       
 12490                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 12491                 return return_type_symbol;
       
 12492                 
       
 12493             }
       
 12494             
       
 12495             
       
 12496             ERROR;
       
 12497         }
       
 12498         
       
 12499     }/*function_int_to_real*/
       
 12500     break;
       
 12501 
       
 12502 /****
       
 12503  *INT_TO_SINT
       
 12504  */
       
 12505     case function_int_to_sint :
       
 12506     {
       
 12507         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12508 
       
 12509         {
       
 12510             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12511             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12512             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12513             symbol_c *IN_type_symbol = NULL;
       
 12514             
       
 12515             /* Get the value from a foo(<param_value>) style call */
       
 12516             if (IN_param_value == NULL)
       
 12517               IN_param_value = function_call_param_iterator.next_nf();
       
 12518             if (IN_param_value != NULL) {
       
 12519               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12520               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12521             }
       
 12522             
       
 12523             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12524             {
       
 12525         
       
 12526                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 12527                 return return_type_symbol;
       
 12528                 
       
 12529             }
       
 12530             
       
 12531             
       
 12532             ERROR;
       
 12533         }
       
 12534         
       
 12535     }/*function_int_to_sint*/
       
 12536     break;
       
 12537 
       
 12538 /****
       
 12539  *INT_TO_LINT
       
 12540  */
       
 12541     case function_int_to_lint :
       
 12542     {
       
 12543         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12544 
       
 12545         {
       
 12546             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12547             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12548             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12549             symbol_c *IN_type_symbol = NULL;
       
 12550             
       
 12551             /* Get the value from a foo(<param_value>) style call */
       
 12552             if (IN_param_value == NULL)
       
 12553               IN_param_value = function_call_param_iterator.next_nf();
       
 12554             if (IN_param_value != NULL) {
       
 12555               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12556               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12557             }
       
 12558             
       
 12559             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12560             {
       
 12561         
       
 12562                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 12563                 return return_type_symbol;
       
 12564                 
       
 12565             }
       
 12566             
       
 12567             
       
 12568             ERROR;
       
 12569         }
       
 12570         
       
 12571     }/*function_int_to_lint*/
       
 12572     break;
       
 12573 
       
 12574 /****
       
 12575  *INT_TO_DINT
       
 12576  */
       
 12577     case function_int_to_dint :
       
 12578     {
       
 12579         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12580 
       
 12581         {
       
 12582             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12583             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12584             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12585             symbol_c *IN_type_symbol = NULL;
       
 12586             
       
 12587             /* Get the value from a foo(<param_value>) style call */
       
 12588             if (IN_param_value == NULL)
       
 12589               IN_param_value = function_call_param_iterator.next_nf();
       
 12590             if (IN_param_value != NULL) {
       
 12591               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12592               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12593             }
       
 12594             
       
 12595             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12596             {
       
 12597         
       
 12598                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 12599                 return return_type_symbol;
       
 12600                 
       
 12601             }
       
 12602             
       
 12603             
       
 12604             ERROR;
       
 12605         }
       
 12606         
       
 12607     }/*function_int_to_dint*/
       
 12608     break;
       
 12609 
       
 12610 /****
       
 12611  *INT_TO_DATE
       
 12612  */
       
 12613     case function_int_to_date :
       
 12614     {
       
 12615         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12616 
       
 12617         {
       
 12618             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12619             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12620             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12621             symbol_c *IN_type_symbol = NULL;
       
 12622             
       
 12623             /* Get the value from a foo(<param_value>) style call */
       
 12624             if (IN_param_value == NULL)
       
 12625               IN_param_value = function_call_param_iterator.next_nf();
       
 12626             if (IN_param_value != NULL) {
       
 12627               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12628               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12629             }
       
 12630             
       
 12631             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12632             {
       
 12633         
       
 12634                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 12635                 return return_type_symbol;
       
 12636                 
       
 12637             }
       
 12638             
       
 12639             
       
 12640             ERROR;
       
 12641         }
       
 12642         
       
 12643     }/*function_int_to_date*/
       
 12644     break;
       
 12645 
       
 12646 /****
       
 12647  *INT_TO_DWORD
       
 12648  */
       
 12649     case function_int_to_dword :
       
 12650     {
       
 12651         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12652 
       
 12653         {
       
 12654             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12655             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12656             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12657             symbol_c *IN_type_symbol = NULL;
       
 12658             
       
 12659             /* Get the value from a foo(<param_value>) style call */
       
 12660             if (IN_param_value == NULL)
       
 12661               IN_param_value = function_call_param_iterator.next_nf();
       
 12662             if (IN_param_value != NULL) {
       
 12663               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12664               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12665             }
       
 12666             
       
 12667             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12668             {
       
 12669         
       
 12670                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 12671                 return return_type_symbol;
       
 12672                 
       
 12673             }
       
 12674             
       
 12675             
       
 12676             ERROR;
       
 12677         }
       
 12678         
       
 12679     }/*function_int_to_dword*/
       
 12680     break;
       
 12681 
       
 12682 /****
       
 12683  *INT_TO_DT
       
 12684  */
       
 12685     case function_int_to_dt :
       
 12686     {
       
 12687         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12688 
       
 12689         {
       
 12690             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12691             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12692             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12693             symbol_c *IN_type_symbol = NULL;
       
 12694             
       
 12695             /* Get the value from a foo(<param_value>) style call */
       
 12696             if (IN_param_value == NULL)
       
 12697               IN_param_value = function_call_param_iterator.next_nf();
       
 12698             if (IN_param_value != NULL) {
       
 12699               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12700               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12701             }
       
 12702             
       
 12703             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12704             {
       
 12705         
       
 12706                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 12707                 return return_type_symbol;
       
 12708                 
       
 12709             }
       
 12710             
       
 12711             
       
 12712             ERROR;
       
 12713         }
       
 12714         
       
 12715     }/*function_int_to_dt*/
       
 12716     break;
       
 12717 
       
 12718 /****
       
 12719  *INT_TO_TOD
       
 12720  */
       
 12721     case function_int_to_tod :
       
 12722     {
       
 12723         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12724 
       
 12725         {
       
 12726             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12727             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12728             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12729             symbol_c *IN_type_symbol = NULL;
       
 12730             
       
 12731             /* Get the value from a foo(<param_value>) style call */
       
 12732             if (IN_param_value == NULL)
       
 12733               IN_param_value = function_call_param_iterator.next_nf();
       
 12734             if (IN_param_value != NULL) {
       
 12735               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12736               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12737             }
       
 12738             
       
 12739             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12740             {
       
 12741         
       
 12742                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 12743                 return return_type_symbol;
       
 12744                 
       
 12745             }
       
 12746             
       
 12747             
       
 12748             ERROR;
       
 12749         }
       
 12750         
       
 12751     }/*function_int_to_tod*/
       
 12752     break;
       
 12753 
       
 12754 /****
       
 12755  *INT_TO_UDINT
       
 12756  */
       
 12757     case function_int_to_udint :
       
 12758     {
       
 12759         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12760 
       
 12761         {
       
 12762             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12763             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12764             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12765             symbol_c *IN_type_symbol = NULL;
       
 12766             
       
 12767             /* Get the value from a foo(<param_value>) style call */
       
 12768             if (IN_param_value == NULL)
       
 12769               IN_param_value = function_call_param_iterator.next_nf();
       
 12770             if (IN_param_value != NULL) {
       
 12771               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12772               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12773             }
       
 12774             
       
 12775             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12776             {
       
 12777         
       
 12778                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 12779                 return return_type_symbol;
       
 12780                 
       
 12781             }
       
 12782             
       
 12783             
       
 12784             ERROR;
       
 12785         }
       
 12786         
       
 12787     }/*function_int_to_udint*/
       
 12788     break;
       
 12789 
       
 12790 /****
       
 12791  *INT_TO_WORD
       
 12792  */
       
 12793     case function_int_to_word :
       
 12794     {
       
 12795         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12796 
       
 12797         {
       
 12798             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12799             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12800             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12801             symbol_c *IN_type_symbol = NULL;
       
 12802             
       
 12803             /* Get the value from a foo(<param_value>) style call */
       
 12804             if (IN_param_value == NULL)
       
 12805               IN_param_value = function_call_param_iterator.next_nf();
       
 12806             if (IN_param_value != NULL) {
       
 12807               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12808               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12809             }
       
 12810             
       
 12811             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12812             {
       
 12813         
       
 12814                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 12815                 return return_type_symbol;
       
 12816                 
       
 12817             }
       
 12818             
       
 12819             
       
 12820             ERROR;
       
 12821         }
       
 12822         
       
 12823     }/*function_int_to_word*/
       
 12824     break;
       
 12825 
       
 12826 /****
       
 12827  *INT_TO_STRING
       
 12828  */
       
 12829     case function_int_to_string :
       
 12830     {
       
 12831         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12832 
       
 12833         {
       
 12834             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12835             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12836             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12837             symbol_c *IN_type_symbol = NULL;
       
 12838             
       
 12839             /* Get the value from a foo(<param_value>) style call */
       
 12840             if (IN_param_value == NULL)
       
 12841               IN_param_value = function_call_param_iterator.next_nf();
       
 12842             if (IN_param_value != NULL) {
       
 12843               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12844               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12845             }
       
 12846             
       
 12847             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12848             {
       
 12849         
       
 12850                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 12851                 return return_type_symbol;
       
 12852                 
       
 12853             }
       
 12854             
       
 12855             
       
 12856             ERROR;
       
 12857         }
       
 12858         
       
 12859     }/*function_int_to_string*/
       
 12860     break;
       
 12861 
       
 12862 /****
       
 12863  *INT_TO_LWORD
       
 12864  */
       
 12865     case function_int_to_lword :
       
 12866     {
       
 12867         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12868 
       
 12869         {
       
 12870             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12871             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12872             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12873             symbol_c *IN_type_symbol = NULL;
       
 12874             
       
 12875             /* Get the value from a foo(<param_value>) style call */
       
 12876             if (IN_param_value == NULL)
       
 12877               IN_param_value = function_call_param_iterator.next_nf();
       
 12878             if (IN_param_value != NULL) {
       
 12879               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12880               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12881             }
       
 12882             
       
 12883             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12884             {
       
 12885         
       
 12886                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 12887                 return return_type_symbol;
       
 12888                 
       
 12889             }
       
 12890             
       
 12891             
       
 12892             ERROR;
       
 12893         }
       
 12894         
       
 12895     }/*function_int_to_lword*/
       
 12896     break;
       
 12897 
       
 12898 /****
       
 12899  *INT_TO_UINT
       
 12900  */
       
 12901     case function_int_to_uint :
       
 12902     {
       
 12903         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12904 
       
 12905         {
       
 12906             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12907             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12908             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12909             symbol_c *IN_type_symbol = NULL;
       
 12910             
       
 12911             /* Get the value from a foo(<param_value>) style call */
       
 12912             if (IN_param_value == NULL)
       
 12913               IN_param_value = function_call_param_iterator.next_nf();
       
 12914             if (IN_param_value != NULL) {
       
 12915               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12916               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12917             }
       
 12918             
       
 12919             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12920             {
       
 12921         
       
 12922                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 12923                 return return_type_symbol;
       
 12924                 
       
 12925             }
       
 12926             
       
 12927             
       
 12928             ERROR;
       
 12929         }
       
 12930         
       
 12931     }/*function_int_to_uint*/
       
 12932     break;
       
 12933 
       
 12934 /****
       
 12935  *INT_TO_LREAL
       
 12936  */
       
 12937     case function_int_to_lreal :
       
 12938     {
       
 12939         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12940 
       
 12941         {
       
 12942             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12943             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12944             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12945             symbol_c *IN_type_symbol = NULL;
       
 12946             
       
 12947             /* Get the value from a foo(<param_value>) style call */
       
 12948             if (IN_param_value == NULL)
       
 12949               IN_param_value = function_call_param_iterator.next_nf();
       
 12950             if (IN_param_value != NULL) {
       
 12951               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12952               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12953             }
       
 12954             
       
 12955             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12956             {
       
 12957         
       
 12958                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 12959                 return return_type_symbol;
       
 12960                 
       
 12961             }
       
 12962             
       
 12963             
       
 12964             ERROR;
       
 12965         }
       
 12966         
       
 12967     }/*function_int_to_lreal*/
       
 12968     break;
       
 12969 
       
 12970 /****
       
 12971  *INT_TO_BYTE
       
 12972  */
       
 12973     case function_int_to_byte :
       
 12974     {
       
 12975         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 12976 
       
 12977         {
       
 12978             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 12979             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 12980             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 12981             symbol_c *IN_type_symbol = NULL;
       
 12982             
       
 12983             /* Get the value from a foo(<param_value>) style call */
       
 12984             if (IN_param_value == NULL)
       
 12985               IN_param_value = function_call_param_iterator.next_nf();
       
 12986             if (IN_param_value != NULL) {
       
 12987               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 12988               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 12989             }
       
 12990             
       
 12991             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 12992             {
       
 12993         
       
 12994                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 12995                 return return_type_symbol;
       
 12996                 
       
 12997             }
       
 12998             
       
 12999             
       
 13000             ERROR;
       
 13001         }
       
 13002         
       
 13003     }/*function_int_to_byte*/
       
 13004     break;
       
 13005 
       
 13006 /****
       
 13007  *INT_TO_USINT
       
 13008  */
       
 13009     case function_int_to_usint :
       
 13010     {
       
 13011         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 13012 
       
 13013         {
       
 13014             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13015             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13016             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13017             symbol_c *IN_type_symbol = NULL;
       
 13018             
       
 13019             /* Get the value from a foo(<param_value>) style call */
       
 13020             if (IN_param_value == NULL)
       
 13021               IN_param_value = function_call_param_iterator.next_nf();
       
 13022             if (IN_param_value != NULL) {
       
 13023               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13024               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13025             }
       
 13026             
       
 13027             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 13028             {
       
 13029         
       
 13030                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 13031                 return return_type_symbol;
       
 13032                 
       
 13033             }
       
 13034             
       
 13035             
       
 13036             ERROR;
       
 13037         }
       
 13038         
       
 13039     }/*function_int_to_usint*/
       
 13040     break;
       
 13041 
       
 13042 /****
       
 13043  *INT_TO_ULINT
       
 13044  */
       
 13045     case function_int_to_ulint :
       
 13046     {
       
 13047         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 13048 
       
 13049         {
       
 13050             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13051             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13052             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13053             symbol_c *IN_type_symbol = NULL;
       
 13054             
       
 13055             /* Get the value from a foo(<param_value>) style call */
       
 13056             if (IN_param_value == NULL)
       
 13057               IN_param_value = function_call_param_iterator.next_nf();
       
 13058             if (IN_param_value != NULL) {
       
 13059               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13060               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13061             }
       
 13062             
       
 13063             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 13064             {
       
 13065         
       
 13066                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 13067                 return return_type_symbol;
       
 13068                 
       
 13069             }
       
 13070             
       
 13071             
       
 13072             ERROR;
       
 13073         }
       
 13074         
       
 13075     }/*function_int_to_ulint*/
       
 13076     break;
       
 13077 
       
 13078 /****
       
 13079  *INT_TO_BOOL
       
 13080  */
       
 13081     case function_int_to_bool :
       
 13082     {
       
 13083         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 13084 
       
 13085         {
       
 13086             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13087             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13088             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13089             symbol_c *IN_type_symbol = NULL;
       
 13090             
       
 13091             /* Get the value from a foo(<param_value>) style call */
       
 13092             if (IN_param_value == NULL)
       
 13093               IN_param_value = function_call_param_iterator.next_nf();
       
 13094             if (IN_param_value != NULL) {
       
 13095               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13096               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13097             }
       
 13098             
       
 13099             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 13100             {
       
 13101         
       
 13102                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 13103                 return return_type_symbol;
       
 13104                 
       
 13105             }
       
 13106             
       
 13107             
       
 13108             ERROR;
       
 13109         }
       
 13110         
       
 13111     }/*function_int_to_bool*/
       
 13112     break;
       
 13113 
       
 13114 /****
       
 13115  *INT_TO_TIME
       
 13116  */
       
 13117     case function_int_to_time :
       
 13118     {
       
 13119         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 13120 
       
 13121         {
       
 13122             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13123             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13124             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13125             symbol_c *IN_type_symbol = NULL;
       
 13126             
       
 13127             /* Get the value from a foo(<param_value>) style call */
       
 13128             if (IN_param_value == NULL)
       
 13129               IN_param_value = function_call_param_iterator.next_nf();
       
 13130             if (IN_param_value != NULL) {
       
 13131               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13132               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13133             }
       
 13134             
       
 13135             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 13136             {
       
 13137         
       
 13138                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 13139                 return return_type_symbol;
       
 13140                 
       
 13141             }
       
 13142             
       
 13143             
       
 13144             ERROR;
       
 13145         }
       
 13146         
       
 13147     }/*function_int_to_time*/
       
 13148     break;
       
 13149 
       
 13150 /****
       
 13151  *TRUNC
       
 13152  */
       
 13153     case function_trunc :
       
 13154     {
       
 13155         symbol_c *last_type_symbol = NULL;
       
 13156 
       
 13157         {
       
 13158             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13159             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13160             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13161             symbol_c *IN_type_symbol = NULL;
       
 13162             
       
 13163             /* Get the value from a foo(<param_value>) style call */
       
 13164             if (IN_param_value == NULL)
       
 13165               IN_param_value = function_call_param_iterator.next_nf();
       
 13166             if (IN_param_value != NULL) {
       
 13167               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13168               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13169             }
       
 13170             
       
 13171             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13172             {
       
 13173         
       
 13174                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 13175                 return return_type_symbol;
       
 13176                 
       
 13177             }
       
 13178             
       
 13179             
       
 13180             ERROR;
       
 13181         }
       
 13182         
       
 13183     }/*function_trunc*/
       
 13184     break;
       
 13185 
       
 13186 /****
       
 13187  *BCD_TO_UDINT
       
 13188  */
       
 13189     case function_bcd_to_udint :
       
 13190     {
       
 13191         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 13192 
       
 13193         {
       
 13194             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13195             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13196             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13197             symbol_c *IN_type_symbol = NULL;
       
 13198             
       
 13199             /* Get the value from a foo(<param_value>) style call */
       
 13200             if (IN_param_value == NULL)
       
 13201               IN_param_value = function_call_param_iterator.next_nf();
       
 13202             if (IN_param_value != NULL) {
       
 13203               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13204               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13205             }
       
 13206             
       
 13207             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 13208             {
       
 13209         
       
 13210                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 13211                 return return_type_symbol;
       
 13212                 
       
 13213             }
       
 13214             
       
 13215             
       
 13216             ERROR;
       
 13217         }
       
 13218         
       
 13219     }/*function_bcd_to_udint*/
       
 13220     break;
       
 13221 
       
 13222 /****
       
 13223  *BCD_TO_UINT
       
 13224  */
       
 13225     case function_bcd_to_uint :
       
 13226     {
       
 13227         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 13228 
       
 13229         {
       
 13230             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13231             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13232             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13233             symbol_c *IN_type_symbol = NULL;
       
 13234             
       
 13235             /* Get the value from a foo(<param_value>) style call */
       
 13236             if (IN_param_value == NULL)
       
 13237               IN_param_value = function_call_param_iterator.next_nf();
       
 13238             if (IN_param_value != NULL) {
       
 13239               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13240               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13241             }
       
 13242             
       
 13243             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 13244             {
       
 13245         
       
 13246                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 13247                 return return_type_symbol;
       
 13248                 
       
 13249             }
       
 13250             
       
 13251             
       
 13252             ERROR;
       
 13253         }
       
 13254         
       
 13255     }/*function_bcd_to_uint*/
       
 13256     break;
       
 13257 
       
 13258 /****
       
 13259  *BCD_TO_ULINT
       
 13260  */
       
 13261     case function_bcd_to_ulint :
       
 13262     {
       
 13263         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 13264 
       
 13265         {
       
 13266             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13267             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13268             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13269             symbol_c *IN_type_symbol = NULL;
       
 13270             
       
 13271             /* Get the value from a foo(<param_value>) style call */
       
 13272             if (IN_param_value == NULL)
       
 13273               IN_param_value = function_call_param_iterator.next_nf();
       
 13274             if (IN_param_value != NULL) {
       
 13275               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13276               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13277             }
       
 13278             
       
 13279             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 13280             {
       
 13281         
       
 13282                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 13283                 return return_type_symbol;
       
 13284                 
       
 13285             }
       
 13286             
       
 13287             
       
 13288             ERROR;
       
 13289         }
       
 13290         
       
 13291     }/*function_bcd_to_ulint*/
       
 13292     break;
       
 13293 
       
 13294 /****
       
 13295  *BCD_TO_USINT
       
 13296  */
       
 13297     case function_bcd_to_usint :
       
 13298     {
       
 13299         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 13300 
       
 13301         {
       
 13302             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13303             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13304             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13305             symbol_c *IN_type_symbol = NULL;
       
 13306             
       
 13307             /* Get the value from a foo(<param_value>) style call */
       
 13308             if (IN_param_value == NULL)
       
 13309               IN_param_value = function_call_param_iterator.next_nf();
       
 13310             if (IN_param_value != NULL) {
       
 13311               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13312               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13313             }
       
 13314             
       
 13315             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 13316             {
       
 13317         
       
 13318                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 13319                 return return_type_symbol;
       
 13320                 
       
 13321             }
       
 13322             
       
 13323             
       
 13324             ERROR;
       
 13325         }
       
 13326         
       
 13327     }/*function_bcd_to_usint*/
       
 13328     break;
       
 13329 
       
 13330 /****
       
 13331  *UDINT_TO_BCD
       
 13332  */
       
 13333     case function_udint_to_bcd :
       
 13334     {
       
 13335         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 13336 
       
 13337         {
       
 13338             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13339             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13340             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13341             symbol_c *IN_type_symbol = NULL;
       
 13342             
       
 13343             /* Get the value from a foo(<param_value>) style call */
       
 13344             if (IN_param_value == NULL)
       
 13345               IN_param_value = function_call_param_iterator.next_nf();
       
 13346             if (IN_param_value != NULL) {
       
 13347               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13348               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13349             }
       
 13350             
       
 13351             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 13352             {
       
 13353         
       
 13354                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 13355                 return return_type_symbol;
       
 13356                 
       
 13357             }
       
 13358             
       
 13359             
       
 13360             ERROR;
       
 13361         }
       
 13362         
       
 13363     }/*function_udint_to_bcd*/
       
 13364     break;
       
 13365 
       
 13366 /****
       
 13367  *UINT_TO_BCD
       
 13368  */
       
 13369     case function_uint_to_bcd :
       
 13370     {
       
 13371         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 13372 
       
 13373         {
       
 13374             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13375             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13376             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13377             symbol_c *IN_type_symbol = NULL;
       
 13378             
       
 13379             /* Get the value from a foo(<param_value>) style call */
       
 13380             if (IN_param_value == NULL)
       
 13381               IN_param_value = function_call_param_iterator.next_nf();
       
 13382             if (IN_param_value != NULL) {
       
 13383               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13384               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13385             }
       
 13386             
       
 13387             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 13388             {
       
 13389         
       
 13390                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 13391                 return return_type_symbol;
       
 13392                 
       
 13393             }
       
 13394             
       
 13395             
       
 13396             ERROR;
       
 13397         }
       
 13398         
       
 13399     }/*function_uint_to_bcd*/
       
 13400     break;
       
 13401 
       
 13402 /****
       
 13403  *USINT_TO_BCD
       
 13404  */
       
 13405     case function_usint_to_bcd :
       
 13406     {
       
 13407         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 13408 
       
 13409         {
       
 13410             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13411             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13412             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13413             symbol_c *IN_type_symbol = NULL;
       
 13414             
       
 13415             /* Get the value from a foo(<param_value>) style call */
       
 13416             if (IN_param_value == NULL)
       
 13417               IN_param_value = function_call_param_iterator.next_nf();
       
 13418             if (IN_param_value != NULL) {
       
 13419               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13420               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13421             }
       
 13422             
       
 13423             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 13424             {
       
 13425         
       
 13426                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 13427                 return return_type_symbol;
       
 13428                 
       
 13429             }
       
 13430             
       
 13431             
       
 13432             ERROR;
       
 13433         }
       
 13434         
       
 13435     }/*function_usint_to_bcd*/
       
 13436     break;
       
 13437 
       
 13438 /****
       
 13439  *ULINT_TO_BCD
       
 13440  */
       
 13441     case function_ulint_to_bcd :
       
 13442     {
       
 13443         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 13444 
       
 13445         {
       
 13446             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13447             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13448             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13449             symbol_c *IN_type_symbol = NULL;
       
 13450             
       
 13451             /* Get the value from a foo(<param_value>) style call */
       
 13452             if (IN_param_value == NULL)
       
 13453               IN_param_value = function_call_param_iterator.next_nf();
       
 13454             if (IN_param_value != NULL) {
       
 13455               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13456               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13457             }
       
 13458             
       
 13459             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 13460             {
       
 13461         
       
 13462                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 13463                 return return_type_symbol;
       
 13464                 
       
 13465             }
       
 13466             
       
 13467             
       
 13468             ERROR;
       
 13469         }
       
 13470         
       
 13471     }/*function_ulint_to_bcd*/
       
 13472     break;
       
 13473 
       
 13474 /****
       
 13475  *DATE_AND_TIME_TO_TIME_OF_DAY
       
 13476  */
       
 13477     case function_date_and_time_to_time_of_day :
       
 13478     {
       
 13479         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 13480 
       
 13481         {
       
 13482             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13483             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13484             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13485             symbol_c *IN_type_symbol = NULL;
       
 13486             
       
 13487             /* Get the value from a foo(<param_value>) style call */
       
 13488             if (IN_param_value == NULL)
       
 13489               IN_param_value = function_call_param_iterator.next_nf();
       
 13490             if (IN_param_value != NULL) {
       
 13491               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13492               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13493             }
       
 13494             
       
 13495             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 13496             {
       
 13497         
       
 13498                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 13499                 return return_type_symbol;
       
 13500                 
       
 13501             }
       
 13502             
       
 13503             
       
 13504             ERROR;
       
 13505         }
       
 13506         
       
 13507     }/*function_date_and_time_to_time_of_day*/
       
 13508     break;
       
 13509 
       
 13510 /****
       
 13511  *DATE_AND_TIME_TO_DATE
       
 13512  */
       
 13513     case function_date_and_time_to_date :
       
 13514     {
       
 13515         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 13516 
       
 13517         {
       
 13518             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13519             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13520             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13521             symbol_c *IN_type_symbol = NULL;
       
 13522             
       
 13523             /* Get the value from a foo(<param_value>) style call */
       
 13524             if (IN_param_value == NULL)
       
 13525               IN_param_value = function_call_param_iterator.next_nf();
       
 13526             if (IN_param_value != NULL) {
       
 13527               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13528               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13529             }
       
 13530             
       
 13531             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 13532             {
       
 13533         
       
 13534                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 13535                 return return_type_symbol;
       
 13536                 
       
 13537             }
       
 13538             
       
 13539             
       
 13540             ERROR;
       
 13541         }
       
 13542         
       
 13543     }/*function_date_and_time_to_date*/
       
 13544     break;
       
 13545 
       
 13546 /****
       
 13547  *ABS
       
 13548  */
       
 13549     case function_abs :
       
 13550     {
       
 13551         symbol_c *last_type_symbol = NULL;
       
 13552 
       
 13553         {
       
 13554             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13555             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13556             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13557             symbol_c *IN_type_symbol = NULL;
       
 13558             
       
 13559             /* Get the value from a foo(<param_value>) style call */
       
 13560             if (IN_param_value == NULL)
       
 13561               IN_param_value = function_call_param_iterator.next_nf();
       
 13562             if (IN_param_value != NULL) {
       
 13563               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13564               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13565             }
       
 13566             
       
 13567             if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol))
       
 13568             {
       
 13569         
       
 13570                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13571                 return return_type_symbol;
       
 13572                 
       
 13573             }
       
 13574             
       
 13575             
       
 13576             ERROR;
       
 13577         }
       
 13578         
       
 13579     }/*function_abs*/
       
 13580     break;
       
 13581 
       
 13582 /****
       
 13583  *SQRT
       
 13584  */
       
 13585     case function_sqrt :
       
 13586     {
       
 13587         symbol_c *last_type_symbol = NULL;
       
 13588 
       
 13589         {
       
 13590             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13591             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13592             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13593             symbol_c *IN_type_symbol = NULL;
       
 13594             
       
 13595             /* Get the value from a foo(<param_value>) style call */
       
 13596             if (IN_param_value == NULL)
       
 13597               IN_param_value = function_call_param_iterator.next_nf();
       
 13598             if (IN_param_value != NULL) {
       
 13599               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13600               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13601             }
       
 13602             
       
 13603             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13604             {
       
 13605         
       
 13606                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13607                 return return_type_symbol;
       
 13608                 
       
 13609             }
       
 13610             
       
 13611             
       
 13612             ERROR;
       
 13613         }
       
 13614         
       
 13615     }/*function_sqrt*/
       
 13616     break;
       
 13617 
       
 13618 /****
       
 13619  *LN
       
 13620  */
       
 13621     case function_ln :
       
 13622     {
       
 13623         symbol_c *last_type_symbol = NULL;
       
 13624 
       
 13625         {
       
 13626             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13627             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13628             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13629             symbol_c *IN_type_symbol = NULL;
       
 13630             
       
 13631             /* Get the value from a foo(<param_value>) style call */
       
 13632             if (IN_param_value == NULL)
       
 13633               IN_param_value = function_call_param_iterator.next_nf();
       
 13634             if (IN_param_value != NULL) {
       
 13635               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13636               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13637             }
       
 13638             
       
 13639             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13640             {
       
 13641         
       
 13642                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13643                 return return_type_symbol;
       
 13644                 
       
 13645             }
       
 13646             
       
 13647             
       
 13648             ERROR;
       
 13649         }
       
 13650         
       
 13651     }/*function_ln*/
       
 13652     break;
       
 13653 
       
 13654 /****
       
 13655  *LOG
       
 13656  */
       
 13657     case function_log :
       
 13658     {
       
 13659         symbol_c *last_type_symbol = NULL;
       
 13660 
       
 13661         {
       
 13662             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13663             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13664             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13665             symbol_c *IN_type_symbol = NULL;
       
 13666             
       
 13667             /* Get the value from a foo(<param_value>) style call */
       
 13668             if (IN_param_value == NULL)
       
 13669               IN_param_value = function_call_param_iterator.next_nf();
       
 13670             if (IN_param_value != NULL) {
       
 13671               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13672               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13673             }
       
 13674             
       
 13675             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13676             {
       
 13677         
       
 13678                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13679                 return return_type_symbol;
       
 13680                 
       
 13681             }
       
 13682             
       
 13683             
       
 13684             ERROR;
       
 13685         }
       
 13686         
       
 13687     }/*function_log*/
       
 13688     break;
       
 13689 
       
 13690 /****
       
 13691  *EXP
       
 13692  */
       
 13693     case function_exp :
       
 13694     {
       
 13695         symbol_c *last_type_symbol = NULL;
       
 13696 
       
 13697         {
       
 13698             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13699             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13700             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13701             symbol_c *IN_type_symbol = NULL;
       
 13702             
       
 13703             /* Get the value from a foo(<param_value>) style call */
       
 13704             if (IN_param_value == NULL)
       
 13705               IN_param_value = function_call_param_iterator.next_nf();
       
 13706             if (IN_param_value != NULL) {
       
 13707               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13708               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13709             }
       
 13710             
       
 13711             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13712             {
       
 13713         
       
 13714                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13715                 return return_type_symbol;
       
 13716                 
       
 13717             }
       
 13718             
       
 13719             
       
 13720             ERROR;
       
 13721         }
       
 13722         
       
 13723     }/*function_exp*/
       
 13724     break;
       
 13725 
       
 13726 /****
       
 13727  *SIN
       
 13728  */
       
 13729     case function_sin :
       
 13730     {
       
 13731         symbol_c *last_type_symbol = NULL;
       
 13732 
       
 13733         {
       
 13734             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13735             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13736             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13737             symbol_c *IN_type_symbol = NULL;
       
 13738             
       
 13739             /* Get the value from a foo(<param_value>) style call */
       
 13740             if (IN_param_value == NULL)
       
 13741               IN_param_value = function_call_param_iterator.next_nf();
       
 13742             if (IN_param_value != NULL) {
       
 13743               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13744               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13745             }
       
 13746             
       
 13747             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13748             {
       
 13749         
       
 13750                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13751                 return return_type_symbol;
       
 13752                 
       
 13753             }
       
 13754             
       
 13755             
       
 13756             ERROR;
       
 13757         }
       
 13758         
       
 13759     }/*function_sin*/
       
 13760     break;
       
 13761 
       
 13762 /****
       
 13763  *COS
       
 13764  */
       
 13765     case function_cos :
       
 13766     {
       
 13767         symbol_c *last_type_symbol = NULL;
       
 13768 
       
 13769         {
       
 13770             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13771             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13772             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13773             symbol_c *IN_type_symbol = NULL;
       
 13774             
       
 13775             /* Get the value from a foo(<param_value>) style call */
       
 13776             if (IN_param_value == NULL)
       
 13777               IN_param_value = function_call_param_iterator.next_nf();
       
 13778             if (IN_param_value != NULL) {
       
 13779               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13780               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13781             }
       
 13782             
       
 13783             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13784             {
       
 13785         
       
 13786                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13787                 return return_type_symbol;
       
 13788                 
       
 13789             }
       
 13790             
       
 13791             
       
 13792             ERROR;
       
 13793         }
       
 13794         
       
 13795     }/*function_cos*/
       
 13796     break;
       
 13797 
       
 13798 /****
       
 13799  *TAN
       
 13800  */
       
 13801     case function_tan :
       
 13802     {
       
 13803         symbol_c *last_type_symbol = NULL;
       
 13804 
       
 13805         {
       
 13806             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13807             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13808             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13809             symbol_c *IN_type_symbol = NULL;
       
 13810             
       
 13811             /* Get the value from a foo(<param_value>) style call */
       
 13812             if (IN_param_value == NULL)
       
 13813               IN_param_value = function_call_param_iterator.next_nf();
       
 13814             if (IN_param_value != NULL) {
       
 13815               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13816               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13817             }
       
 13818             
       
 13819             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13820             {
       
 13821         
       
 13822                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13823                 return return_type_symbol;
       
 13824                 
       
 13825             }
       
 13826             
       
 13827             
       
 13828             ERROR;
       
 13829         }
       
 13830         
       
 13831     }/*function_tan*/
       
 13832     break;
       
 13833 
       
 13834 /****
       
 13835  *ASIN
       
 13836  */
       
 13837     case function_asin :
       
 13838     {
       
 13839         symbol_c *last_type_symbol = NULL;
       
 13840 
       
 13841         {
       
 13842             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13843             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13844             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13845             symbol_c *IN_type_symbol = NULL;
       
 13846             
       
 13847             /* Get the value from a foo(<param_value>) style call */
       
 13848             if (IN_param_value == NULL)
       
 13849               IN_param_value = function_call_param_iterator.next_nf();
       
 13850             if (IN_param_value != NULL) {
       
 13851               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13852               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13853             }
       
 13854             
       
 13855             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13856             {
       
 13857         
       
 13858                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13859                 return return_type_symbol;
       
 13860                 
       
 13861             }
       
 13862             
       
 13863             
       
 13864             ERROR;
       
 13865         }
       
 13866         
       
 13867     }/*function_asin*/
       
 13868     break;
       
 13869 
       
 13870 /****
       
 13871  *ACOS
       
 13872  */
       
 13873     case function_acos :
       
 13874     {
       
 13875         symbol_c *last_type_symbol = NULL;
       
 13876 
       
 13877         {
       
 13878             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13879             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13880             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13881             symbol_c *IN_type_symbol = NULL;
       
 13882             
       
 13883             /* Get the value from a foo(<param_value>) style call */
       
 13884             if (IN_param_value == NULL)
       
 13885               IN_param_value = function_call_param_iterator.next_nf();
       
 13886             if (IN_param_value != NULL) {
       
 13887               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13888               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13889             }
       
 13890             
       
 13891             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13892             {
       
 13893         
       
 13894                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13895                 return return_type_symbol;
       
 13896                 
       
 13897             }
       
 13898             
       
 13899             
       
 13900             ERROR;
       
 13901         }
       
 13902         
       
 13903     }/*function_acos*/
       
 13904     break;
       
 13905 
       
 13906 /****
       
 13907  *ATAN
       
 13908  */
       
 13909     case function_atan :
       
 13910     {
       
 13911         symbol_c *last_type_symbol = NULL;
       
 13912 
       
 13913         {
       
 13914             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 13915             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13916             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 13917             symbol_c *IN_type_symbol = NULL;
       
 13918             
       
 13919             /* Get the value from a foo(<param_value>) style call */
       
 13920             if (IN_param_value == NULL)
       
 13921               IN_param_value = function_call_param_iterator.next_nf();
       
 13922             if (IN_param_value != NULL) {
       
 13923               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 13924               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 13925             }
       
 13926             
       
 13927             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 13928             {
       
 13929         
       
 13930                 symbol_c * return_type_symbol = IN_type_symbol;
       
 13931                 return return_type_symbol;
       
 13932                 
       
 13933             }
       
 13934             
       
 13935             
       
 13936             ERROR;
       
 13937         }
       
 13938         
       
 13939     }/*function_atan*/
       
 13940     break;
       
 13941 
       
 13942 /****
       
 13943  *ADD
       
 13944  */
       
 13945     case function_add :
       
 13946     {
       
 13947         symbol_c *last_type_symbol = NULL;
       
 13948 
       
 13949         {
       
 13950             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 13951             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13952             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 13953             symbol_c *IN1_type_symbol = NULL;
       
 13954             
       
 13955             /* Get the value from a foo(<param_value>) style call */
       
 13956             if (IN1_param_value == NULL)
       
 13957               IN1_param_value = function_call_param_iterator.next_nf();
       
 13958             if (IN1_param_value != NULL) {
       
 13959               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 13960               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 13961             }
       
 13962             
       
 13963             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 13964             {
       
 13965         
       
 13966                 {
       
 13967                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 13968                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 13969                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 13970                     symbol_c *IN2_type_symbol = NULL;
       
 13971                     
       
 13972                     /* Get the value from a foo(<param_value>) style call */
       
 13973                     if (IN2_param_value == NULL)
       
 13974                       IN2_param_value = function_call_param_iterator.next_nf();
       
 13975                     if (IN2_param_value != NULL) {
       
 13976                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 13977                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 13978                     }
       
 13979                     
       
 13980                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 13981                     {
       
 13982                 
       
 13983                         symbol_c * return_type_symbol = last_type_symbol;
       
 13984                         return return_type_symbol;
       
 13985                         
       
 13986                     }
       
 13987                     
       
 13988                     
       
 13989                     ERROR;
       
 13990                 }
       
 13991                 
       
 13992             }
       
 13993             
       
 13994             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 13995             {
       
 13996         
       
 13997                 {
       
 13998                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 13999                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14000                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14001                     symbol_c *IN2_type_symbol = NULL;
       
 14002                     
       
 14003                     /* Get the value from a foo(<param_value>) style call */
       
 14004                     if (IN2_param_value == NULL)
       
 14005                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14006                     if (IN2_param_value != NULL) {
       
 14007                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14008                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14009                     }
       
 14010                     
       
 14011                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14012                     {
       
 14013                 
       
 14014                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 14015                         return return_type_symbol;
       
 14016                         
       
 14017                     }
       
 14018                     
       
 14019                     
       
 14020                     ERROR;
       
 14021                 }
       
 14022                 
       
 14023             }
       
 14024             
       
 14025             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 14026             {
       
 14027         
       
 14028                 {
       
 14029                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14030                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14031                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14032                     symbol_c *IN2_type_symbol = NULL;
       
 14033                     
       
 14034                     /* Get the value from a foo(<param_value>) style call */
       
 14035                     if (IN2_param_value == NULL)
       
 14036                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14037                     if (IN2_param_value != NULL) {
       
 14038                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14039                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14040                     }
       
 14041                     
       
 14042                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14043                     {
       
 14044                 
       
 14045                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 14046                         return return_type_symbol;
       
 14047                         
       
 14048                     }
       
 14049                     
       
 14050                     
       
 14051                     ERROR;
       
 14052                 }
       
 14053                 
       
 14054             }
       
 14055             
       
 14056             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14057             {
       
 14058         
       
 14059                 {
       
 14060                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14061                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14062                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14063                     symbol_c *IN2_type_symbol = NULL;
       
 14064                     
       
 14065                     /* Get the value from a foo(<param_value>) style call */
       
 14066                     if (IN2_param_value == NULL)
       
 14067                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14068                     if (IN2_param_value != NULL) {
       
 14069                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14070                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14071                     }
       
 14072                     
       
 14073                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14074                     {
       
 14075                 
       
 14076                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14077                         return return_type_symbol;
       
 14078                         
       
 14079                     }
       
 14080                     
       
 14081                     
       
 14082                     ERROR;
       
 14083                 }
       
 14084                 
       
 14085             }
       
 14086             
       
 14087             
       
 14088             ERROR;
       
 14089         }
       
 14090         
       
 14091     }/*function_add*/
       
 14092     break;
       
 14093 
       
 14094 /****
       
 14095  *MUL
       
 14096  */
       
 14097     case function_mul :
       
 14098     {
       
 14099         symbol_c *last_type_symbol = NULL;
       
 14100 
       
 14101         {
       
 14102             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14103             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14104             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14105             symbol_c *IN1_type_symbol = NULL;
       
 14106             
       
 14107             /* Get the value from a foo(<param_value>) style call */
       
 14108             if (IN1_param_value == NULL)
       
 14109               IN1_param_value = function_call_param_iterator.next_nf();
       
 14110             if (IN1_param_value != NULL) {
       
 14111               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14112               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14113             }
       
 14114             
       
 14115             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 14116             {
       
 14117         
       
 14118                 {
       
 14119                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14120                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14121                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14122                     symbol_c *IN2_type_symbol = NULL;
       
 14123                     
       
 14124                     /* Get the value from a foo(<param_value>) style call */
       
 14125                     if (IN2_param_value == NULL)
       
 14126                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14127                     if (IN2_param_value != NULL) {
       
 14128                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14129                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14130                     }
       
 14131                     
       
 14132                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14133                     {
       
 14134                 
       
 14135                         symbol_c * return_type_symbol = last_type_symbol;
       
 14136                         return return_type_symbol;
       
 14137                         
       
 14138                     }
       
 14139                     
       
 14140                     
       
 14141                     ERROR;
       
 14142                 }
       
 14143                 
       
 14144             }
       
 14145             
       
 14146             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14147             {
       
 14148         
       
 14149                 {
       
 14150                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14151                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14152                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14153                     symbol_c *IN2_type_symbol = NULL;
       
 14154                     
       
 14155                     /* Get the value from a foo(<param_value>) style call */
       
 14156                     if (IN2_param_value == NULL)
       
 14157                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14158                     if (IN2_param_value != NULL) {
       
 14159                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14160                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14161                     }
       
 14162                     
       
 14163                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14164                     {
       
 14165                 
       
 14166                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14167                         return return_type_symbol;
       
 14168                         
       
 14169                     }
       
 14170                     
       
 14171                     
       
 14172                     ERROR;
       
 14173                 }
       
 14174                 
       
 14175             }
       
 14176             
       
 14177             
       
 14178             ERROR;
       
 14179         }
       
 14180         
       
 14181     }/*function_mul*/
       
 14182     break;
       
 14183 
       
 14184 /****
       
 14185  *SUB
       
 14186  */
       
 14187     case function_sub :
       
 14188     {
       
 14189         symbol_c *last_type_symbol = NULL;
       
 14190 
       
 14191         {
       
 14192             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14193             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14194             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14195             symbol_c *IN1_type_symbol = NULL;
       
 14196             
       
 14197             /* Get the value from a foo(<param_value>) style call */
       
 14198             if (IN1_param_value == NULL)
       
 14199               IN1_param_value = function_call_param_iterator.next_nf();
       
 14200             if (IN1_param_value != NULL) {
       
 14201               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14202               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14203             }
       
 14204             
       
 14205             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 14206             {
       
 14207         
       
 14208                 {
       
 14209                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14210                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14211                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14212                     symbol_c *IN2_type_symbol = NULL;
       
 14213                     
       
 14214                     /* Get the value from a foo(<param_value>) style call */
       
 14215                     if (IN2_param_value == NULL)
       
 14216                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14217                     if (IN2_param_value != NULL) {
       
 14218                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14219                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14220                     }
       
 14221                     
       
 14222                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14223                     {
       
 14224                 
       
 14225                         symbol_c * return_type_symbol = last_type_symbol;
       
 14226                         return return_type_symbol;
       
 14227                         
       
 14228                     }
       
 14229                     
       
 14230                     
       
 14231                     ERROR;
       
 14232                 }
       
 14233                 
       
 14234             }
       
 14235             
       
 14236             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 14237             {
       
 14238         
       
 14239                 {
       
 14240                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14241                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14242                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14243                     symbol_c *IN2_type_symbol = NULL;
       
 14244                     
       
 14245                     /* Get the value from a foo(<param_value>) style call */
       
 14246                     if (IN2_param_value == NULL)
       
 14247                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14248                     if (IN2_param_value != NULL) {
       
 14249                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14250                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14251                     }
       
 14252                     
       
 14253                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 14254                     {
       
 14255                 
       
 14256                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14257                         return return_type_symbol;
       
 14258                         
       
 14259                     }
       
 14260                     
       
 14261                     
       
 14262                     ERROR;
       
 14263                 }
       
 14264                 
       
 14265             }
       
 14266             
       
 14267             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 14268             {
       
 14269         
       
 14270                 {
       
 14271                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14272                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14273                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14274                     symbol_c *IN2_type_symbol = NULL;
       
 14275                     
       
 14276                     /* Get the value from a foo(<param_value>) style call */
       
 14277                     if (IN2_param_value == NULL)
       
 14278                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14279                     if (IN2_param_value != NULL) {
       
 14280                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14281                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14282                     }
       
 14283                     
       
 14284                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 14285                     {
       
 14286                 
       
 14287                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14288                         return return_type_symbol;
       
 14289                         
       
 14290                     }
       
 14291                     
       
 14292                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14293                     {
       
 14294                 
       
 14295                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 14296                         return return_type_symbol;
       
 14297                         
       
 14298                     }
       
 14299                     
       
 14300                     
       
 14301                     ERROR;
       
 14302                 }
       
 14303                 
       
 14304             }
       
 14305             
       
 14306             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 14307             {
       
 14308         
       
 14309                 {
       
 14310                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14311                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14312                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14313                     symbol_c *IN2_type_symbol = NULL;
       
 14314                     
       
 14315                     /* Get the value from a foo(<param_value>) style call */
       
 14316                     if (IN2_param_value == NULL)
       
 14317                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14318                     if (IN2_param_value != NULL) {
       
 14319                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14320                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14321                     }
       
 14322                     
       
 14323                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 14324                     {
       
 14325                 
       
 14326                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14327                         return return_type_symbol;
       
 14328                         
       
 14329                     }
       
 14330                     
       
 14331                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14332                     {
       
 14333                 
       
 14334                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 14335                         return return_type_symbol;
       
 14336                         
       
 14337                     }
       
 14338                     
       
 14339                     
       
 14340                     ERROR;
       
 14341                 }
       
 14342                 
       
 14343             }
       
 14344             
       
 14345             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14346             {
       
 14347         
       
 14348                 {
       
 14349                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14350                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14351                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14352                     symbol_c *IN2_type_symbol = NULL;
       
 14353                     
       
 14354                     /* Get the value from a foo(<param_value>) style call */
       
 14355                     if (IN2_param_value == NULL)
       
 14356                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14357                     if (IN2_param_value != NULL) {
       
 14358                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14359                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14360                     }
       
 14361                     
       
 14362                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14363                     {
       
 14364                 
       
 14365                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14366                         return return_type_symbol;
       
 14367                         
       
 14368                     }
       
 14369                     
       
 14370                     
       
 14371                     ERROR;
       
 14372                 }
       
 14373                 
       
 14374             }
       
 14375             
       
 14376             
       
 14377             ERROR;
       
 14378         }
       
 14379         
       
 14380     }/*function_sub*/
       
 14381     break;
       
 14382 
       
 14383 /****
       
 14384  *DIV
       
 14385  */
       
 14386     case function_div :
       
 14387     {
       
 14388         symbol_c *last_type_symbol = NULL;
       
 14389 
       
 14390         {
       
 14391             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14392             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14393             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14394             symbol_c *IN1_type_symbol = NULL;
       
 14395             
       
 14396             /* Get the value from a foo(<param_value>) style call */
       
 14397             if (IN1_param_value == NULL)
       
 14398               IN1_param_value = function_call_param_iterator.next_nf();
       
 14399             if (IN1_param_value != NULL) {
       
 14400               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14401               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14402             }
       
 14403             
       
 14404             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 14405             {
       
 14406         
       
 14407                 {
       
 14408                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14409                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14410                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14411                     symbol_c *IN2_type_symbol = NULL;
       
 14412                     
       
 14413                     /* Get the value from a foo(<param_value>) style call */
       
 14414                     if (IN2_param_value == NULL)
       
 14415                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14416                     if (IN2_param_value != NULL) {
       
 14417                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14418                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14419                     }
       
 14420                     
       
 14421                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14422                     {
       
 14423                 
       
 14424                         symbol_c * return_type_symbol = last_type_symbol;
       
 14425                         return return_type_symbol;
       
 14426                         
       
 14427                     }
       
 14428                     
       
 14429                     
       
 14430                     ERROR;
       
 14431                 }
       
 14432                 
       
 14433             }
       
 14434             
       
 14435             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14436             {
       
 14437         
       
 14438                 {
       
 14439                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14440                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14441                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14442                     symbol_c *IN2_type_symbol = NULL;
       
 14443                     
       
 14444                     /* Get the value from a foo(<param_value>) style call */
       
 14445                     if (IN2_param_value == NULL)
       
 14446                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14447                     if (IN2_param_value != NULL) {
       
 14448                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14449                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14450                     }
       
 14451                     
       
 14452                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14453                     {
       
 14454                 
       
 14455                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14456                         return return_type_symbol;
       
 14457                         
       
 14458                     }
       
 14459                     
       
 14460                     
       
 14461                     ERROR;
       
 14462                 }
       
 14463                 
       
 14464             }
       
 14465             
       
 14466             
       
 14467             ERROR;
       
 14468         }
       
 14469         
       
 14470     }/*function_div*/
       
 14471     break;
       
 14472 
       
 14473 /****
       
 14474  *MOD
       
 14475  */
       
 14476     case function_mod :
       
 14477     {
       
 14478         symbol_c *last_type_symbol = NULL;
       
 14479 
       
 14480         {
       
 14481             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14482             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14483             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14484             symbol_c *IN1_type_symbol = NULL;
       
 14485             
       
 14486             /* Get the value from a foo(<param_value>) style call */
       
 14487             if (IN1_param_value == NULL)
       
 14488               IN1_param_value = function_call_param_iterator.next_nf();
       
 14489             if (IN1_param_value != NULL) {
       
 14490               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14491               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14492             }
       
 14493             
       
 14494             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 14495             {
       
 14496         
       
 14497                 {
       
 14498                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14499                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14500                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14501                     symbol_c *IN2_type_symbol = NULL;
       
 14502                     
       
 14503                     /* Get the value from a foo(<param_value>) style call */
       
 14504                     if (IN2_param_value == NULL)
       
 14505                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14506                     if (IN2_param_value != NULL) {
       
 14507                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14508                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14509                     }
       
 14510                     
       
 14511                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14512                     {
       
 14513                 
       
 14514                         symbol_c * return_type_symbol = last_type_symbol;
       
 14515                         return return_type_symbol;
       
 14516                         
       
 14517                     }
       
 14518                     
       
 14519                     
       
 14520                     ERROR;
       
 14521                 }
       
 14522                 
       
 14523             }
       
 14524             
       
 14525             
       
 14526             ERROR;
       
 14527         }
       
 14528         
       
 14529     }/*function_mod*/
       
 14530     break;
       
 14531 
       
 14532 /****
       
 14533  *EXPT
       
 14534  */
       
 14535     case function_expt :
       
 14536     {
       
 14537         symbol_c *last_type_symbol = NULL;
       
 14538 
       
 14539         {
       
 14540             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14541             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14542             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14543             symbol_c *IN1_type_symbol = NULL;
       
 14544             
       
 14545             /* Get the value from a foo(<param_value>) style call */
       
 14546             if (IN1_param_value == NULL)
       
 14547               IN1_param_value = function_call_param_iterator.next_nf();
       
 14548             if (IN1_param_value != NULL) {
       
 14549               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14550               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14551             }
       
 14552             
       
 14553             if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
       
 14554             {
       
 14555         
       
 14556                 {
       
 14557                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14558                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14559                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14560                     symbol_c *IN2_type_symbol = NULL;
       
 14561                     
       
 14562                     /* Get the value from a foo(<param_value>) style call */
       
 14563                     if (IN2_param_value == NULL)
       
 14564                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14565                     if (IN2_param_value != NULL) {
       
 14566                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14567                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14568                     }
       
 14569                     
       
 14570                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14571                     {
       
 14572                 
       
 14573                         symbol_c * return_type_symbol = IN1_type_symbol;
       
 14574                         return return_type_symbol;
       
 14575                         
       
 14576                     }
       
 14577                     
       
 14578                     
       
 14579                     ERROR;
       
 14580                 }
       
 14581                 
       
 14582             }
       
 14583             
       
 14584             
       
 14585             ERROR;
       
 14586         }
       
 14587         
       
 14588     }/*function_expt*/
       
 14589     break;
       
 14590 
       
 14591 /****
       
 14592  *MOVE
       
 14593  */
       
 14594     case function_move :
       
 14595     {
       
 14596         symbol_c *last_type_symbol = NULL;
       
 14597 
       
 14598         {
       
 14599             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 14600             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14601             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 14602             symbol_c *IN_type_symbol = NULL;
       
 14603             
       
 14604             /* Get the value from a foo(<param_value>) style call */
       
 14605             if (IN_param_value == NULL)
       
 14606               IN_param_value = function_call_param_iterator.next_nf();
       
 14607             if (IN_param_value != NULL) {
       
 14608               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 14609               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 14610             }
       
 14611             
       
 14612             
       
 14613             {
       
 14614         
       
 14615                 symbol_c * return_type_symbol = last_type_symbol;
       
 14616                 return return_type_symbol;
       
 14617                 
       
 14618             }
       
 14619             
       
 14620             
       
 14621             ERROR;
       
 14622         }
       
 14623         
       
 14624     }/*function_move*/
       
 14625     break;
       
 14626 
       
 14627 /****
       
 14628  *ADD_TIME
       
 14629  */
       
 14630     case function_add_time :
       
 14631     {
       
 14632         symbol_c *last_type_symbol = NULL;
       
 14633 
       
 14634         {
       
 14635             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14636             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14637             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14638             symbol_c *IN1_type_symbol = NULL;
       
 14639             
       
 14640             /* Get the value from a foo(<param_value>) style call */
       
 14641             if (IN1_param_value == NULL)
       
 14642               IN1_param_value = function_call_param_iterator.next_nf();
       
 14643             if (IN1_param_value != NULL) {
       
 14644               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14645               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14646             }
       
 14647             
       
 14648             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14649             {
       
 14650         
       
 14651                 {
       
 14652                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14653                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14654                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14655                     symbol_c *IN2_type_symbol = NULL;
       
 14656                     
       
 14657                     /* Get the value from a foo(<param_value>) style call */
       
 14658                     if (IN2_param_value == NULL)
       
 14659                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14660                     if (IN2_param_value != NULL) {
       
 14661                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14662                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14663                     }
       
 14664                     
       
 14665                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14666                     {
       
 14667                 
       
 14668                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14669                         return return_type_symbol;
       
 14670                         
       
 14671                     }
       
 14672                     
       
 14673                     
       
 14674                     ERROR;
       
 14675                 }
       
 14676                 
       
 14677             }
       
 14678             
       
 14679             
       
 14680             ERROR;
       
 14681         }
       
 14682         
       
 14683     }/*function_add_time*/
       
 14684     break;
       
 14685 
       
 14686 /****
       
 14687  *ADD_TOD_TIME
       
 14688  */
       
 14689     case function_add_tod_time :
       
 14690     {
       
 14691         symbol_c *last_type_symbol = NULL;
       
 14692 
       
 14693         {
       
 14694             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14695             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14696             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14697             symbol_c *IN1_type_symbol = NULL;
       
 14698             
       
 14699             /* Get the value from a foo(<param_value>) style call */
       
 14700             if (IN1_param_value == NULL)
       
 14701               IN1_param_value = function_call_param_iterator.next_nf();
       
 14702             if (IN1_param_value != NULL) {
       
 14703               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14704               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14705             }
       
 14706             
       
 14707             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 14708             {
       
 14709         
       
 14710                 {
       
 14711                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14712                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14713                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14714                     symbol_c *IN2_type_symbol = NULL;
       
 14715                     
       
 14716                     /* Get the value from a foo(<param_value>) style call */
       
 14717                     if (IN2_param_value == NULL)
       
 14718                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14719                     if (IN2_param_value != NULL) {
       
 14720                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14721                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14722                     }
       
 14723                     
       
 14724                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14725                     {
       
 14726                 
       
 14727                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 14728                         return return_type_symbol;
       
 14729                         
       
 14730                     }
       
 14731                     
       
 14732                     
       
 14733                     ERROR;
       
 14734                 }
       
 14735                 
       
 14736             }
       
 14737             
       
 14738             
       
 14739             ERROR;
       
 14740         }
       
 14741         
       
 14742     }/*function_add_tod_time*/
       
 14743     break;
       
 14744 
       
 14745 /****
       
 14746  *ADD_DT_TIME
       
 14747  */
       
 14748     case function_add_dt_time :
       
 14749     {
       
 14750         symbol_c *last_type_symbol = NULL;
       
 14751 
       
 14752         {
       
 14753             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14754             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14755             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14756             symbol_c *IN1_type_symbol = NULL;
       
 14757             
       
 14758             /* Get the value from a foo(<param_value>) style call */
       
 14759             if (IN1_param_value == NULL)
       
 14760               IN1_param_value = function_call_param_iterator.next_nf();
       
 14761             if (IN1_param_value != NULL) {
       
 14762               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14763               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14764             }
       
 14765             
       
 14766             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 14767             {
       
 14768         
       
 14769                 {
       
 14770                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14771                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14772                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14773                     symbol_c *IN2_type_symbol = NULL;
       
 14774                     
       
 14775                     /* Get the value from a foo(<param_value>) style call */
       
 14776                     if (IN2_param_value == NULL)
       
 14777                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14778                     if (IN2_param_value != NULL) {
       
 14779                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14780                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14781                     }
       
 14782                     
       
 14783                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14784                     {
       
 14785                 
       
 14786                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 14787                         return return_type_symbol;
       
 14788                         
       
 14789                     }
       
 14790                     
       
 14791                     
       
 14792                     ERROR;
       
 14793                 }
       
 14794                 
       
 14795             }
       
 14796             
       
 14797             
       
 14798             ERROR;
       
 14799         }
       
 14800         
       
 14801     }/*function_add_dt_time*/
       
 14802     break;
       
 14803 
       
 14804 /****
       
 14805  *MULTIME
       
 14806  */
       
 14807     case function_multime :
       
 14808     {
       
 14809         symbol_c *last_type_symbol = NULL;
       
 14810 
       
 14811         {
       
 14812             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14813             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14814             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14815             symbol_c *IN1_type_symbol = NULL;
       
 14816             
       
 14817             /* Get the value from a foo(<param_value>) style call */
       
 14818             if (IN1_param_value == NULL)
       
 14819               IN1_param_value = function_call_param_iterator.next_nf();
       
 14820             if (IN1_param_value != NULL) {
       
 14821               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14822               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14823             }
       
 14824             
       
 14825             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14826             {
       
 14827         
       
 14828                 {
       
 14829                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14830                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14831                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14832                     symbol_c *IN2_type_symbol = NULL;
       
 14833                     
       
 14834                     /* Get the value from a foo(<param_value>) style call */
       
 14835                     if (IN2_param_value == NULL)
       
 14836                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14837                     if (IN2_param_value != NULL) {
       
 14838                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14839                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14840                     }
       
 14841                     
       
 14842                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 14843                     {
       
 14844                 
       
 14845                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14846                         return return_type_symbol;
       
 14847                         
       
 14848                     }
       
 14849                     
       
 14850                     
       
 14851                     ERROR;
       
 14852                 }
       
 14853                 
       
 14854             }
       
 14855             
       
 14856             
       
 14857             ERROR;
       
 14858         }
       
 14859         
       
 14860     }/*function_multime*/
       
 14861     break;
       
 14862 
       
 14863 /****
       
 14864  *SUB_TIME
       
 14865  */
       
 14866     case function_sub_time :
       
 14867     {
       
 14868         symbol_c *last_type_symbol = NULL;
       
 14869 
       
 14870         {
       
 14871             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14872             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14873             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14874             symbol_c *IN1_type_symbol = NULL;
       
 14875             
       
 14876             /* Get the value from a foo(<param_value>) style call */
       
 14877             if (IN1_param_value == NULL)
       
 14878               IN1_param_value = function_call_param_iterator.next_nf();
       
 14879             if (IN1_param_value != NULL) {
       
 14880               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14881               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14882             }
       
 14883             
       
 14884             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14885             {
       
 14886         
       
 14887                 {
       
 14888                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14889                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14890                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14891                     symbol_c *IN2_type_symbol = NULL;
       
 14892                     
       
 14893                     /* Get the value from a foo(<param_value>) style call */
       
 14894                     if (IN2_param_value == NULL)
       
 14895                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14896                     if (IN2_param_value != NULL) {
       
 14897                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14898                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14899                     }
       
 14900                     
       
 14901                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 14902                     {
       
 14903                 
       
 14904                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14905                         return return_type_symbol;
       
 14906                         
       
 14907                     }
       
 14908                     
       
 14909                     
       
 14910                     ERROR;
       
 14911                 }
       
 14912                 
       
 14913             }
       
 14914             
       
 14915             
       
 14916             ERROR;
       
 14917         }
       
 14918         
       
 14919     }/*function_sub_time*/
       
 14920     break;
       
 14921 
       
 14922 /****
       
 14923  *SUB_DATE_DATE
       
 14924  */
       
 14925     case function_sub_date_date :
       
 14926     {
       
 14927         symbol_c *last_type_symbol = NULL;
       
 14928 
       
 14929         {
       
 14930             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14931             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14932             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14933             symbol_c *IN1_type_symbol = NULL;
       
 14934             
       
 14935             /* Get the value from a foo(<param_value>) style call */
       
 14936             if (IN1_param_value == NULL)
       
 14937               IN1_param_value = function_call_param_iterator.next_nf();
       
 14938             if (IN1_param_value != NULL) {
       
 14939               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14940               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 14941             }
       
 14942             
       
 14943             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 14944             {
       
 14945         
       
 14946                 {
       
 14947                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 14948                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14949                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 14950                     symbol_c *IN2_type_symbol = NULL;
       
 14951                     
       
 14952                     /* Get the value from a foo(<param_value>) style call */
       
 14953                     if (IN2_param_value == NULL)
       
 14954                       IN2_param_value = function_call_param_iterator.next_nf();
       
 14955                     if (IN2_param_value != NULL) {
       
 14956                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 14957                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 14958                     }
       
 14959                     
       
 14960                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 14961                     {
       
 14962                 
       
 14963                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 14964                         return return_type_symbol;
       
 14965                         
       
 14966                     }
       
 14967                     
       
 14968                     
       
 14969                     ERROR;
       
 14970                 }
       
 14971                 
       
 14972             }
       
 14973             
       
 14974             
       
 14975             ERROR;
       
 14976         }
       
 14977         
       
 14978     }/*function_sub_date_date*/
       
 14979     break;
       
 14980 
       
 14981 /****
       
 14982  *SUB_TOD_TIME
       
 14983  */
       
 14984     case function_sub_tod_time :
       
 14985     {
       
 14986         symbol_c *last_type_symbol = NULL;
       
 14987 
       
 14988         {
       
 14989             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 14990             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 14991             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 14992             symbol_c *IN1_type_symbol = NULL;
       
 14993             
       
 14994             /* Get the value from a foo(<param_value>) style call */
       
 14995             if (IN1_param_value == NULL)
       
 14996               IN1_param_value = function_call_param_iterator.next_nf();
       
 14997             if (IN1_param_value != NULL) {
       
 14998               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 14999               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15000             }
       
 15001             
       
 15002             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 15003             {
       
 15004         
       
 15005                 {
       
 15006                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15007                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15008                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15009                     symbol_c *IN2_type_symbol = NULL;
       
 15010                     
       
 15011                     /* Get the value from a foo(<param_value>) style call */
       
 15012                     if (IN2_param_value == NULL)
       
 15013                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15014                     if (IN2_param_value != NULL) {
       
 15015                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15016                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15017                     }
       
 15018                     
       
 15019                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 15020                     {
       
 15021                 
       
 15022                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 15023                         return return_type_symbol;
       
 15024                         
       
 15025                     }
       
 15026                     
       
 15027                     
       
 15028                     ERROR;
       
 15029                 }
       
 15030                 
       
 15031             }
       
 15032             
       
 15033             
       
 15034             ERROR;
       
 15035         }
       
 15036         
       
 15037     }/*function_sub_tod_time*/
       
 15038     break;
       
 15039 
       
 15040 /****
       
 15041  *SUB_TOD_TOD
       
 15042  */
       
 15043     case function_sub_tod_tod :
       
 15044     {
       
 15045         symbol_c *last_type_symbol = NULL;
       
 15046 
       
 15047         {
       
 15048             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15049             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15050             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15051             symbol_c *IN1_type_symbol = NULL;
       
 15052             
       
 15053             /* Get the value from a foo(<param_value>) style call */
       
 15054             if (IN1_param_value == NULL)
       
 15055               IN1_param_value = function_call_param_iterator.next_nf();
       
 15056             if (IN1_param_value != NULL) {
       
 15057               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15058               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15059             }
       
 15060             
       
 15061             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 15062             {
       
 15063         
       
 15064                 {
       
 15065                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15066                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15067                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15068                     symbol_c *IN2_type_symbol = NULL;
       
 15069                     
       
 15070                     /* Get the value from a foo(<param_value>) style call */
       
 15071                     if (IN2_param_value == NULL)
       
 15072                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15073                     if (IN2_param_value != NULL) {
       
 15074                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15075                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15076                     }
       
 15077                     
       
 15078                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 15079                     {
       
 15080                 
       
 15081                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 15082                         return return_type_symbol;
       
 15083                         
       
 15084                     }
       
 15085                     
       
 15086                     
       
 15087                     ERROR;
       
 15088                 }
       
 15089                 
       
 15090             }
       
 15091             
       
 15092             
       
 15093             ERROR;
       
 15094         }
       
 15095         
       
 15096     }/*function_sub_tod_tod*/
       
 15097     break;
       
 15098 
       
 15099 /****
       
 15100  *SUB_DT_TIME
       
 15101  */
       
 15102     case function_sub_dt_time :
       
 15103     {
       
 15104         symbol_c *last_type_symbol = NULL;
       
 15105 
       
 15106         {
       
 15107             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15108             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15109             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15110             symbol_c *IN1_type_symbol = NULL;
       
 15111             
       
 15112             /* Get the value from a foo(<param_value>) style call */
       
 15113             if (IN1_param_value == NULL)
       
 15114               IN1_param_value = function_call_param_iterator.next_nf();
       
 15115             if (IN1_param_value != NULL) {
       
 15116               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15117               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15118             }
       
 15119             
       
 15120             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 15121             {
       
 15122         
       
 15123                 {
       
 15124                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15125                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15126                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15127                     symbol_c *IN2_type_symbol = NULL;
       
 15128                     
       
 15129                     /* Get the value from a foo(<param_value>) style call */
       
 15130                     if (IN2_param_value == NULL)
       
 15131                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15132                     if (IN2_param_value != NULL) {
       
 15133                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15134                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15135                     }
       
 15136                     
       
 15137                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 15138                     {
       
 15139                 
       
 15140                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 15141                         return return_type_symbol;
       
 15142                         
       
 15143                     }
       
 15144                     
       
 15145                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 15146                     {
       
 15147                 
       
 15148                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 15149                         return return_type_symbol;
       
 15150                         
       
 15151                     }
       
 15152                     
       
 15153                     
       
 15154                     ERROR;
       
 15155                 }
       
 15156                 
       
 15157             }
       
 15158             
       
 15159             
       
 15160             ERROR;
       
 15161         }
       
 15162         
       
 15163     }/*function_sub_dt_time*/
       
 15164     break;
       
 15165 
       
 15166 /****
       
 15167  *DIVTIME
       
 15168  */
       
 15169     case function_divtime :
       
 15170     {
       
 15171         symbol_c *last_type_symbol = NULL;
       
 15172 
       
 15173         {
       
 15174             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15175             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15176             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15177             symbol_c *IN1_type_symbol = NULL;
       
 15178             
       
 15179             /* Get the value from a foo(<param_value>) style call */
       
 15180             if (IN1_param_value == NULL)
       
 15181               IN1_param_value = function_call_param_iterator.next_nf();
       
 15182             if (IN1_param_value != NULL) {
       
 15183               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15184               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15185             }
       
 15186             
       
 15187             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 15188             {
       
 15189         
       
 15190                 {
       
 15191                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15192                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15193                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15194                     symbol_c *IN2_type_symbol = NULL;
       
 15195                     
       
 15196                     /* Get the value from a foo(<param_value>) style call */
       
 15197                     if (IN2_param_value == NULL)
       
 15198                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15199                     if (IN2_param_value != NULL) {
       
 15200                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15201                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15202                     }
       
 15203                     
       
 15204                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 15205                     {
       
 15206                 
       
 15207                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 15208                         return return_type_symbol;
       
 15209                         
       
 15210                     }
       
 15211                     
       
 15212                     
       
 15213                     ERROR;
       
 15214                 }
       
 15215                 
       
 15216             }
       
 15217             
       
 15218             
       
 15219             ERROR;
       
 15220         }
       
 15221         
       
 15222     }/*function_divtime*/
       
 15223     break;
       
 15224 
       
 15225 /****
       
 15226  *SHL
       
 15227  */
       
 15228     case function_shl :
       
 15229     {
       
 15230         symbol_c *last_type_symbol = NULL;
       
 15231 
       
 15232         {
       
 15233             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15234             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15235             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15236             symbol_c *IN_type_symbol = NULL;
       
 15237             
       
 15238             /* Get the value from a foo(<param_value>) style call */
       
 15239             if (IN_param_value == NULL)
       
 15240               IN_param_value = function_call_param_iterator.next_nf();
       
 15241             if (IN_param_value != NULL) {
       
 15242               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15243               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15244             }
       
 15245             
       
 15246             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 15247             {
       
 15248         
       
 15249                 {
       
 15250                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 15251                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15252                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 15253                     symbol_c *N_type_symbol = NULL;
       
 15254                     
       
 15255                     /* Get the value from a foo(<param_value>) style call */
       
 15256                     if (N_param_value == NULL)
       
 15257                       N_param_value = function_call_param_iterator.next_nf();
       
 15258                     if (N_param_value != NULL) {
       
 15259                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 15260                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 15261                     }
       
 15262                     
       
 15263                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 15264                     {
       
 15265                 
       
 15266                         symbol_c * return_type_symbol = IN_type_symbol;
       
 15267                         return return_type_symbol;
       
 15268                         
       
 15269                     }
       
 15270                     
       
 15271                     
       
 15272                     ERROR;
       
 15273                 }
       
 15274                 
       
 15275             }
       
 15276             
       
 15277             
       
 15278             ERROR;
       
 15279         }
       
 15280         
       
 15281     }/*function_shl*/
       
 15282     break;
       
 15283 
       
 15284 /****
       
 15285  *SHR
       
 15286  */
       
 15287     case function_shr :
       
 15288     {
       
 15289         symbol_c *last_type_symbol = NULL;
       
 15290 
       
 15291         {
       
 15292             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15293             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15294             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15295             symbol_c *IN_type_symbol = NULL;
       
 15296             
       
 15297             /* Get the value from a foo(<param_value>) style call */
       
 15298             if (IN_param_value == NULL)
       
 15299               IN_param_value = function_call_param_iterator.next_nf();
       
 15300             if (IN_param_value != NULL) {
       
 15301               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15302               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15303             }
       
 15304             
       
 15305             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 15306             {
       
 15307         
       
 15308                 {
       
 15309                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 15310                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15311                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 15312                     symbol_c *N_type_symbol = NULL;
       
 15313                     
       
 15314                     /* Get the value from a foo(<param_value>) style call */
       
 15315                     if (N_param_value == NULL)
       
 15316                       N_param_value = function_call_param_iterator.next_nf();
       
 15317                     if (N_param_value != NULL) {
       
 15318                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 15319                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 15320                     }
       
 15321                     
       
 15322                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 15323                     {
       
 15324                 
       
 15325                         symbol_c * return_type_symbol = IN_type_symbol;
       
 15326                         return return_type_symbol;
       
 15327                         
       
 15328                     }
       
 15329                     
       
 15330                     
       
 15331                     ERROR;
       
 15332                 }
       
 15333                 
       
 15334             }
       
 15335             
       
 15336             
       
 15337             ERROR;
       
 15338         }
       
 15339         
       
 15340     }/*function_shr*/
       
 15341     break;
       
 15342 
       
 15343 /****
       
 15344  *ROR
       
 15345  */
       
 15346     case function_ror :
       
 15347     {
       
 15348         symbol_c *last_type_symbol = NULL;
       
 15349 
       
 15350         {
       
 15351             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15352             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15353             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15354             symbol_c *IN_type_symbol = NULL;
       
 15355             
       
 15356             /* Get the value from a foo(<param_value>) style call */
       
 15357             if (IN_param_value == NULL)
       
 15358               IN_param_value = function_call_param_iterator.next_nf();
       
 15359             if (IN_param_value != NULL) {
       
 15360               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15361               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15362             }
       
 15363             
       
 15364             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
       
 15365             {
       
 15366         
       
 15367                 {
       
 15368                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 15369                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15370                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 15371                     symbol_c *N_type_symbol = NULL;
       
 15372                     
       
 15373                     /* Get the value from a foo(<param_value>) style call */
       
 15374                     if (N_param_value == NULL)
       
 15375                       N_param_value = function_call_param_iterator.next_nf();
       
 15376                     if (N_param_value != NULL) {
       
 15377                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 15378                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 15379                     }
       
 15380                     
       
 15381                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 15382                     {
       
 15383                 
       
 15384                         symbol_c * return_type_symbol = IN_type_symbol;
       
 15385                         return return_type_symbol;
       
 15386                         
       
 15387                     }
       
 15388                     
       
 15389                     
       
 15390                     ERROR;
       
 15391                 }
       
 15392                 
       
 15393             }
       
 15394             
       
 15395             
       
 15396             ERROR;
       
 15397         }
       
 15398         
       
 15399     }/*function_ror*/
       
 15400     break;
       
 15401 
       
 15402 /****
       
 15403  *ROL
       
 15404  */
       
 15405     case function_rol :
       
 15406     {
       
 15407         symbol_c *last_type_symbol = NULL;
       
 15408 
       
 15409         {
       
 15410             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15411             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15412             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15413             symbol_c *IN_type_symbol = NULL;
       
 15414             
       
 15415             /* Get the value from a foo(<param_value>) style call */
       
 15416             if (IN_param_value == NULL)
       
 15417               IN_param_value = function_call_param_iterator.next_nf();
       
 15418             if (IN_param_value != NULL) {
       
 15419               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15420               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15421             }
       
 15422             
       
 15423             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
       
 15424             {
       
 15425         
       
 15426                 {
       
 15427                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 15428                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15429                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 15430                     symbol_c *N_type_symbol = NULL;
       
 15431                     
       
 15432                     /* Get the value from a foo(<param_value>) style call */
       
 15433                     if (N_param_value == NULL)
       
 15434                       N_param_value = function_call_param_iterator.next_nf();
       
 15435                     if (N_param_value != NULL) {
       
 15436                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 15437                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 15438                     }
       
 15439                     
       
 15440                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 15441                     {
       
 15442                 
       
 15443                         symbol_c * return_type_symbol = IN_type_symbol;
       
 15444                         return return_type_symbol;
       
 15445                         
       
 15446                     }
       
 15447                     
       
 15448                     
       
 15449                     ERROR;
       
 15450                 }
       
 15451                 
       
 15452             }
       
 15453             
       
 15454             
       
 15455             ERROR;
       
 15456         }
       
 15457         
       
 15458     }/*function_rol*/
       
 15459     break;
       
 15460 
       
 15461 /****
       
 15462  *AND
       
 15463  */
       
 15464     case function_and :
       
 15465     {
       
 15466         symbol_c *last_type_symbol = NULL;
       
 15467 
       
 15468         {
       
 15469             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15470             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15471             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15472             symbol_c *IN1_type_symbol = NULL;
       
 15473             
       
 15474             /* Get the value from a foo(<param_value>) style call */
       
 15475             if (IN1_param_value == NULL)
       
 15476               IN1_param_value = function_call_param_iterator.next_nf();
       
 15477             if (IN1_param_value != NULL) {
       
 15478               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15479               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15480             }
       
 15481             
       
 15482             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 15483             {
       
 15484         
       
 15485                 {
       
 15486                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15487                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15488                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15489                     symbol_c *IN2_type_symbol = NULL;
       
 15490                     
       
 15491                     /* Get the value from a foo(<param_value>) style call */
       
 15492                     if (IN2_param_value == NULL)
       
 15493                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15494                     if (IN2_param_value != NULL) {
       
 15495                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15496                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15497                     }
       
 15498                     
       
 15499                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 15500                     {
       
 15501                 
       
 15502                         symbol_c * return_type_symbol = last_type_symbol;
       
 15503                         return return_type_symbol;
       
 15504                         
       
 15505                     }
       
 15506                     
       
 15507                     
       
 15508                     ERROR;
       
 15509                 }
       
 15510                 
       
 15511             }
       
 15512             
       
 15513             
       
 15514             ERROR;
       
 15515         }
       
 15516         
       
 15517     }/*function_and*/
       
 15518     break;
       
 15519 
       
 15520 /****
       
 15521  *OR
       
 15522  */
       
 15523     case function_or :
       
 15524     {
       
 15525         symbol_c *last_type_symbol = NULL;
       
 15526 
       
 15527         {
       
 15528             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15529             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15530             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15531             symbol_c *IN1_type_symbol = NULL;
       
 15532             
       
 15533             /* Get the value from a foo(<param_value>) style call */
       
 15534             if (IN1_param_value == NULL)
       
 15535               IN1_param_value = function_call_param_iterator.next_nf();
       
 15536             if (IN1_param_value != NULL) {
       
 15537               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15538               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15539             }
       
 15540             
       
 15541             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 15542             {
       
 15543         
       
 15544                 {
       
 15545                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15546                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15547                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15548                     symbol_c *IN2_type_symbol = NULL;
       
 15549                     
       
 15550                     /* Get the value from a foo(<param_value>) style call */
       
 15551                     if (IN2_param_value == NULL)
       
 15552                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15553                     if (IN2_param_value != NULL) {
       
 15554                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15555                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15556                     }
       
 15557                     
       
 15558                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 15559                     {
       
 15560                 
       
 15561                         symbol_c * return_type_symbol = last_type_symbol;
       
 15562                         return return_type_symbol;
       
 15563                         
       
 15564                     }
       
 15565                     
       
 15566                     
       
 15567                     ERROR;
       
 15568                 }
       
 15569                 
       
 15570             }
       
 15571             
       
 15572             
       
 15573             ERROR;
       
 15574         }
       
 15575         
       
 15576     }/*function_or*/
       
 15577     break;
       
 15578 
       
 15579 /****
       
 15580  *XOR
       
 15581  */
       
 15582     case function_xor :
       
 15583     {
       
 15584         symbol_c *last_type_symbol = NULL;
       
 15585 
       
 15586         {
       
 15587             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15588             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15589             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15590             symbol_c *IN1_type_symbol = NULL;
       
 15591             
       
 15592             /* Get the value from a foo(<param_value>) style call */
       
 15593             if (IN1_param_value == NULL)
       
 15594               IN1_param_value = function_call_param_iterator.next_nf();
       
 15595             if (IN1_param_value != NULL) {
       
 15596               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15597               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15598             }
       
 15599             
       
 15600             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 15601             {
       
 15602         
       
 15603                 {
       
 15604                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15605                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15606                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15607                     symbol_c *IN2_type_symbol = NULL;
       
 15608                     
       
 15609                     /* Get the value from a foo(<param_value>) style call */
       
 15610                     if (IN2_param_value == NULL)
       
 15611                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15612                     if (IN2_param_value != NULL) {
       
 15613                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15614                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15615                     }
       
 15616                     
       
 15617                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 15618                     {
       
 15619                 
       
 15620                         symbol_c * return_type_symbol = last_type_symbol;
       
 15621                         return return_type_symbol;
       
 15622                         
       
 15623                     }
       
 15624                     
       
 15625                     
       
 15626                     ERROR;
       
 15627                 }
       
 15628                 
       
 15629             }
       
 15630             
       
 15631             
       
 15632             ERROR;
       
 15633         }
       
 15634         
       
 15635     }/*function_xor*/
       
 15636     break;
       
 15637 
       
 15638 /****
       
 15639  *NOT
       
 15640  */
       
 15641     case function_not :
       
 15642     {
       
 15643         symbol_c *last_type_symbol = NULL;
       
 15644 
       
 15645         {
       
 15646             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15647             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15648             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15649             symbol_c *IN_type_symbol = NULL;
       
 15650             
       
 15651             /* Get the value from a foo(<param_value>) style call */
       
 15652             if (IN_param_value == NULL)
       
 15653               IN_param_value = function_call_param_iterator.next_nf();
       
 15654             if (IN_param_value != NULL) {
       
 15655               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15656               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15657             }
       
 15658             
       
 15659             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 15660             {
       
 15661         
       
 15662                 symbol_c * return_type_symbol = IN_type_symbol;
       
 15663                 return return_type_symbol;
       
 15664                 
       
 15665             }
       
 15666             
       
 15667             
       
 15668             ERROR;
       
 15669         }
       
 15670         
       
 15671     }/*function_not*/
       
 15672     break;
       
 15673 
       
 15674 /****
       
 15675  *SEL
       
 15676  */
       
 15677     case function_sel :
       
 15678     {
       
 15679         symbol_c *last_type_symbol = NULL;
       
 15680 
       
 15681         {
       
 15682             symbol_c *G_param_name = (symbol_c *)(new identifier_c("G"));
       
 15683             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15684             symbol_c *G_param_value = function_call_param_iterator.search_f(G_param_name);
       
 15685             symbol_c *G_type_symbol = NULL;
       
 15686             
       
 15687             /* Get the value from a foo(<param_value>) style call */
       
 15688             if (G_param_value == NULL)
       
 15689               G_param_value = function_call_param_iterator.next_nf();
       
 15690             if (G_param_value != NULL) {
       
 15691               G_type_symbol = search_expression_type->get_type(G_param_value);
       
 15692               last_type_symbol = last_type_symbol && G_type_symbol && search_expression_type->is_same_type(G_type_symbol, last_type_symbol) ? search_expression_type->common_type(G_type_symbol, last_type_symbol) : G_type_symbol ;
       
 15693             }
       
 15694             
       
 15695             if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 15696             {
       
 15697         
       
 15698                 {
       
 15699                     symbol_c *IN0_param_name = (symbol_c *)(new identifier_c("IN0"));
       
 15700                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15701                     symbol_c *IN0_param_value = function_call_param_iterator.search_f(IN0_param_name);
       
 15702                     symbol_c *IN0_type_symbol = NULL;
       
 15703                     
       
 15704                     /* Get the value from a foo(<param_value>) style call */
       
 15705                     if (IN0_param_value == NULL)
       
 15706                       IN0_param_value = function_call_param_iterator.next_nf();
       
 15707                     if (IN0_param_value != NULL) {
       
 15708                       IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
       
 15709                       last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
       
 15710                     }
       
 15711                     
       
 15712                     
       
 15713                     {
       
 15714                 
       
 15715                         {
       
 15716                             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15717                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15718                             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15719                             symbol_c *IN1_type_symbol = NULL;
       
 15720                             
       
 15721                             /* Get the value from a foo(<param_value>) style call */
       
 15722                             if (IN1_param_value == NULL)
       
 15723                               IN1_param_value = function_call_param_iterator.next_nf();
       
 15724                             if (IN1_param_value != NULL) {
       
 15725                               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15726                               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15727                             }
       
 15728                             
       
 15729                             
       
 15730                             {
       
 15731                         
       
 15732                                 symbol_c * return_type_symbol = last_type_symbol;
       
 15733                                 return return_type_symbol;
       
 15734                                 
       
 15735                             }
       
 15736                             
       
 15737                             
       
 15738                             ERROR;
       
 15739                         }
       
 15740                         
       
 15741                     }
       
 15742                     
       
 15743                     
       
 15744                     ERROR;
       
 15745                 }
       
 15746                 
       
 15747             }
       
 15748             
       
 15749             
       
 15750             ERROR;
       
 15751         }
       
 15752         
       
 15753     }/*function_sel*/
       
 15754     break;
       
 15755 
       
 15756 /****
       
 15757  *MAX
       
 15758  */
       
 15759     case function_max :
       
 15760     {
       
 15761         symbol_c *last_type_symbol = NULL;
       
 15762 
       
 15763         {
       
 15764             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15765             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15766             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15767             symbol_c *IN1_type_symbol = NULL;
       
 15768             
       
 15769             /* Get the value from a foo(<param_value>) style call */
       
 15770             if (IN1_param_value == NULL)
       
 15771               IN1_param_value = function_call_param_iterator.next_nf();
       
 15772             if (IN1_param_value != NULL) {
       
 15773               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15774               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15775             }
       
 15776             
       
 15777             
       
 15778             {
       
 15779         
       
 15780                 {
       
 15781                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15782                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15783                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15784                     symbol_c *IN2_type_symbol = NULL;
       
 15785                     
       
 15786                     /* Get the value from a foo(<param_value>) style call */
       
 15787                     if (IN2_param_value == NULL)
       
 15788                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15789                     if (IN2_param_value != NULL) {
       
 15790                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15791                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15792                     }
       
 15793                     
       
 15794                     
       
 15795                     {
       
 15796                 
       
 15797                         symbol_c * return_type_symbol = last_type_symbol;
       
 15798                         return return_type_symbol;
       
 15799                         
       
 15800                     }
       
 15801                     
       
 15802                     
       
 15803                     ERROR;
       
 15804                 }
       
 15805                 
       
 15806             }
       
 15807             
       
 15808             
       
 15809             ERROR;
       
 15810         }
       
 15811         
       
 15812     }/*function_max*/
       
 15813     break;
       
 15814 
       
 15815 /****
       
 15816  *MIN
       
 15817  */
       
 15818     case function_min :
       
 15819     {
       
 15820         symbol_c *last_type_symbol = NULL;
       
 15821 
       
 15822         {
       
 15823             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15824             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15825             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 15826             symbol_c *IN1_type_symbol = NULL;
       
 15827             
       
 15828             /* Get the value from a foo(<param_value>) style call */
       
 15829             if (IN1_param_value == NULL)
       
 15830               IN1_param_value = function_call_param_iterator.next_nf();
       
 15831             if (IN1_param_value != NULL) {
       
 15832               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 15833               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 15834             }
       
 15835             
       
 15836             
       
 15837             {
       
 15838         
       
 15839                 {
       
 15840                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 15841                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15842                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 15843                     symbol_c *IN2_type_symbol = NULL;
       
 15844                     
       
 15845                     /* Get the value from a foo(<param_value>) style call */
       
 15846                     if (IN2_param_value == NULL)
       
 15847                       IN2_param_value = function_call_param_iterator.next_nf();
       
 15848                     if (IN2_param_value != NULL) {
       
 15849                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 15850                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 15851                     }
       
 15852                     
       
 15853                     
       
 15854                     {
       
 15855                 
       
 15856                         symbol_c * return_type_symbol = last_type_symbol;
       
 15857                         return return_type_symbol;
       
 15858                         
       
 15859                     }
       
 15860                     
       
 15861                     
       
 15862                     ERROR;
       
 15863                 }
       
 15864                 
       
 15865             }
       
 15866             
       
 15867             
       
 15868             ERROR;
       
 15869         }
       
 15870         
       
 15871     }/*function_min*/
       
 15872     break;
       
 15873 
       
 15874 /****
       
 15875  *LIMIT
       
 15876  */
       
 15877     case function_limit :
       
 15878     {
       
 15879         symbol_c *last_type_symbol = NULL;
       
 15880 
       
 15881         {
       
 15882             symbol_c *MN_param_name = (symbol_c *)(new identifier_c("MN"));
       
 15883             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15884             symbol_c *MN_param_value = function_call_param_iterator.search_f(MN_param_name);
       
 15885             symbol_c *MN_type_symbol = NULL;
       
 15886             
       
 15887             /* Get the value from a foo(<param_value>) style call */
       
 15888             if (MN_param_value == NULL)
       
 15889               MN_param_value = function_call_param_iterator.next_nf();
       
 15890             if (MN_param_value != NULL) {
       
 15891               MN_type_symbol = search_expression_type->get_type(MN_param_value);
       
 15892               last_type_symbol = last_type_symbol && MN_type_symbol && search_expression_type->is_same_type(MN_type_symbol, last_type_symbol) ? search_expression_type->common_type(MN_type_symbol, last_type_symbol) : MN_type_symbol ;
       
 15893             }
       
 15894             
       
 15895             
       
 15896             {
       
 15897         
       
 15898                 {
       
 15899                     symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 15900                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15901                     symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 15902                     symbol_c *IN_type_symbol = NULL;
       
 15903                     
       
 15904                     /* Get the value from a foo(<param_value>) style call */
       
 15905                     if (IN_param_value == NULL)
       
 15906                       IN_param_value = function_call_param_iterator.next_nf();
       
 15907                     if (IN_param_value != NULL) {
       
 15908                       IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 15909                       last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 15910                     }
       
 15911                     
       
 15912                     
       
 15913                     {
       
 15914                 
       
 15915                         {
       
 15916                             symbol_c *MX_param_name = (symbol_c *)(new identifier_c("MX"));
       
 15917                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15918                             symbol_c *MX_param_value = function_call_param_iterator.search_f(MX_param_name);
       
 15919                             symbol_c *MX_type_symbol = NULL;
       
 15920                             
       
 15921                             /* Get the value from a foo(<param_value>) style call */
       
 15922                             if (MX_param_value == NULL)
       
 15923                               MX_param_value = function_call_param_iterator.next_nf();
       
 15924                             if (MX_param_value != NULL) {
       
 15925                               MX_type_symbol = search_expression_type->get_type(MX_param_value);
       
 15926                               last_type_symbol = last_type_symbol && MX_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ;
       
 15927                             }
       
 15928                             
       
 15929                             
       
 15930                             {
       
 15931                         
       
 15932                                 symbol_c * return_type_symbol = IN_type_symbol;
       
 15933                                 return return_type_symbol;
       
 15934                                 
       
 15935                             }
       
 15936                             
       
 15937                             
       
 15938                             ERROR;
       
 15939                         }
       
 15940                         
       
 15941                     }
       
 15942                     
       
 15943                     
       
 15944                     ERROR;
       
 15945                 }
       
 15946                 
       
 15947             }
       
 15948             
       
 15949             
       
 15950             ERROR;
       
 15951         }
       
 15952         
       
 15953     }/*function_limit*/
       
 15954     break;
       
 15955 
       
 15956 /****
       
 15957  *MUX
       
 15958  */
       
 15959     case function_mux :
       
 15960     {
       
 15961         symbol_c *last_type_symbol = NULL;
       
 15962 
       
 15963         {
       
 15964             symbol_c *K_param_name = (symbol_c *)(new identifier_c("K"));
       
 15965             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15966             symbol_c *K_param_value = function_call_param_iterator.search_f(K_param_name);
       
 15967             symbol_c *K_type_symbol = NULL;
       
 15968             
       
 15969             /* Get the value from a foo(<param_value>) style call */
       
 15970             if (K_param_value == NULL)
       
 15971               K_param_value = function_call_param_iterator.next_nf();
       
 15972             if (K_param_value != NULL) {
       
 15973               K_type_symbol = search_expression_type->get_type(K_param_value);
       
 15974               last_type_symbol = last_type_symbol && K_type_symbol && search_expression_type->is_same_type(K_type_symbol, last_type_symbol) ? search_expression_type->common_type(K_type_symbol, last_type_symbol) : K_type_symbol ;
       
 15975             }
       
 15976             
       
 15977             if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol))
       
 15978             {
       
 15979         
       
 15980                 {
       
 15981                     symbol_c *IN0_param_name = (symbol_c *)(new identifier_c("IN0"));
       
 15982                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 15983                     symbol_c *IN0_param_value = function_call_param_iterator.search_f(IN0_param_name);
       
 15984                     symbol_c *IN0_type_symbol = NULL;
       
 15985                     
       
 15986                     /* Get the value from a foo(<param_value>) style call */
       
 15987                     if (IN0_param_value == NULL)
       
 15988                       IN0_param_value = function_call_param_iterator.next_nf();
       
 15989                     if (IN0_param_value != NULL) {
       
 15990                       IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
       
 15991                       last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
       
 15992                     }
       
 15993                     
       
 15994                     
       
 15995                     {
       
 15996                 
       
 15997                         {
       
 15998                             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 15999                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16000                             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16001                             symbol_c *IN1_type_symbol = NULL;
       
 16002                             
       
 16003                             /* Get the value from a foo(<param_value>) style call */
       
 16004                             if (IN1_param_value == NULL)
       
 16005                               IN1_param_value = function_call_param_iterator.next_nf();
       
 16006                             if (IN1_param_value != NULL) {
       
 16007                               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16008                               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16009                             }
       
 16010                             
       
 16011                             
       
 16012                             {
       
 16013                         
       
 16014                                 symbol_c * return_type_symbol = last_type_symbol;
       
 16015                                 return return_type_symbol;
       
 16016                                 
       
 16017                             }
       
 16018                             
       
 16019                             
       
 16020                             ERROR;
       
 16021                         }
       
 16022                         
       
 16023                     }
       
 16024                     
       
 16025                     
       
 16026                     ERROR;
       
 16027                 }
       
 16028                 
       
 16029             }
       
 16030             
       
 16031             
       
 16032             ERROR;
       
 16033         }
       
 16034         
       
 16035     }/*function_mux*/
       
 16036     break;
       
 16037 
       
 16038 /****
       
 16039  *GT
       
 16040  */
       
 16041     case function_gt :
       
 16042     {
       
 16043         symbol_c *last_type_symbol = NULL;
       
 16044 
       
 16045         {
       
 16046             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16047             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16048             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16049             symbol_c *IN1_type_symbol = NULL;
       
 16050             
       
 16051             /* Get the value from a foo(<param_value>) style call */
       
 16052             if (IN1_param_value == NULL)
       
 16053               IN1_param_value = function_call_param_iterator.next_nf();
       
 16054             if (IN1_param_value != NULL) {
       
 16055               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16056               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16057             }
       
 16058             
       
 16059             
       
 16060             {
       
 16061         
       
 16062                 {
       
 16063                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16064                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16065                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16066                     symbol_c *IN2_type_symbol = NULL;
       
 16067                     
       
 16068                     /* Get the value from a foo(<param_value>) style call */
       
 16069                     if (IN2_param_value == NULL)
       
 16070                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16071                     if (IN2_param_value != NULL) {
       
 16072                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16073                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16074                     }
       
 16075                     
       
 16076                     
       
 16077                     {
       
 16078                 
       
 16079                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16080                         return return_type_symbol;
       
 16081                         
       
 16082                     }
       
 16083                     
       
 16084                     
       
 16085                     ERROR;
       
 16086                 }
       
 16087                 
       
 16088             }
       
 16089             
       
 16090             
       
 16091             ERROR;
       
 16092         }
       
 16093         
       
 16094     }/*function_gt*/
       
 16095     break;
       
 16096 
       
 16097 /****
       
 16098  *GE
       
 16099  */
       
 16100     case function_ge :
       
 16101     {
       
 16102         symbol_c *last_type_symbol = NULL;
       
 16103 
       
 16104         {
       
 16105             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16106             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16107             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16108             symbol_c *IN1_type_symbol = NULL;
       
 16109             
       
 16110             /* Get the value from a foo(<param_value>) style call */
       
 16111             if (IN1_param_value == NULL)
       
 16112               IN1_param_value = function_call_param_iterator.next_nf();
       
 16113             if (IN1_param_value != NULL) {
       
 16114               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16115               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16116             }
       
 16117             
       
 16118             
       
 16119             {
       
 16120         
       
 16121                 {
       
 16122                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16123                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16124                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16125                     symbol_c *IN2_type_symbol = NULL;
       
 16126                     
       
 16127                     /* Get the value from a foo(<param_value>) style call */
       
 16128                     if (IN2_param_value == NULL)
       
 16129                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16130                     if (IN2_param_value != NULL) {
       
 16131                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16132                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16133                     }
       
 16134                     
       
 16135                     
       
 16136                     {
       
 16137                 
       
 16138                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16139                         return return_type_symbol;
       
 16140                         
       
 16141                     }
       
 16142                     
       
 16143                     
       
 16144                     ERROR;
       
 16145                 }
       
 16146                 
       
 16147             }
       
 16148             
       
 16149             
       
 16150             ERROR;
       
 16151         }
       
 16152         
       
 16153     }/*function_ge*/
       
 16154     break;
       
 16155 
       
 16156 /****
       
 16157  *EQ
       
 16158  */
       
 16159     case function_eq :
       
 16160     {
       
 16161         symbol_c *last_type_symbol = NULL;
       
 16162 
       
 16163         {
       
 16164             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16165             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16166             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16167             symbol_c *IN1_type_symbol = NULL;
       
 16168             
       
 16169             /* Get the value from a foo(<param_value>) style call */
       
 16170             if (IN1_param_value == NULL)
       
 16171               IN1_param_value = function_call_param_iterator.next_nf();
       
 16172             if (IN1_param_value != NULL) {
       
 16173               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16174               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16175             }
       
 16176             
       
 16177             
       
 16178             {
       
 16179         
       
 16180                 {
       
 16181                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16182                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16183                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16184                     symbol_c *IN2_type_symbol = NULL;
       
 16185                     
       
 16186                     /* Get the value from a foo(<param_value>) style call */
       
 16187                     if (IN2_param_value == NULL)
       
 16188                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16189                     if (IN2_param_value != NULL) {
       
 16190                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16191                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16192                     }
       
 16193                     
       
 16194                     
       
 16195                     {
       
 16196                 
       
 16197                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16198                         return return_type_symbol;
       
 16199                         
       
 16200                     }
       
 16201                     
       
 16202                     
       
 16203                     ERROR;
       
 16204                 }
       
 16205                 
       
 16206             }
       
 16207             
       
 16208             
       
 16209             ERROR;
       
 16210         }
       
 16211         
       
 16212     }/*function_eq*/
       
 16213     break;
       
 16214 
       
 16215 /****
       
 16216  *LT
       
 16217  */
       
 16218     case function_lt :
       
 16219     {
       
 16220         symbol_c *last_type_symbol = NULL;
       
 16221 
       
 16222         {
       
 16223             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16224             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16225             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16226             symbol_c *IN1_type_symbol = NULL;
       
 16227             
       
 16228             /* Get the value from a foo(<param_value>) style call */
       
 16229             if (IN1_param_value == NULL)
       
 16230               IN1_param_value = function_call_param_iterator.next_nf();
       
 16231             if (IN1_param_value != NULL) {
       
 16232               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16233               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16234             }
       
 16235             
       
 16236             
       
 16237             {
       
 16238         
       
 16239                 {
       
 16240                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16241                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16242                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16243                     symbol_c *IN2_type_symbol = NULL;
       
 16244                     
       
 16245                     /* Get the value from a foo(<param_value>) style call */
       
 16246                     if (IN2_param_value == NULL)
       
 16247                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16248                     if (IN2_param_value != NULL) {
       
 16249                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16250                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16251                     }
       
 16252                     
       
 16253                     
       
 16254                     {
       
 16255                 
       
 16256                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16257                         return return_type_symbol;
       
 16258                         
       
 16259                     }
       
 16260                     
       
 16261                     
       
 16262                     ERROR;
       
 16263                 }
       
 16264                 
       
 16265             }
       
 16266             
       
 16267             
       
 16268             ERROR;
       
 16269         }
       
 16270         
       
 16271     }/*function_lt*/
       
 16272     break;
       
 16273 
       
 16274 /****
       
 16275  *LE
       
 16276  */
       
 16277     case function_le :
       
 16278     {
       
 16279         symbol_c *last_type_symbol = NULL;
       
 16280 
       
 16281         {
       
 16282             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16283             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16284             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16285             symbol_c *IN1_type_symbol = NULL;
       
 16286             
       
 16287             /* Get the value from a foo(<param_value>) style call */
       
 16288             if (IN1_param_value == NULL)
       
 16289               IN1_param_value = function_call_param_iterator.next_nf();
       
 16290             if (IN1_param_value != NULL) {
       
 16291               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16292               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16293             }
       
 16294             
       
 16295             
       
 16296             {
       
 16297         
       
 16298                 {
       
 16299                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16300                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16301                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16302                     symbol_c *IN2_type_symbol = NULL;
       
 16303                     
       
 16304                     /* Get the value from a foo(<param_value>) style call */
       
 16305                     if (IN2_param_value == NULL)
       
 16306                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16307                     if (IN2_param_value != NULL) {
       
 16308                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16309                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16310                     }
       
 16311                     
       
 16312                     
       
 16313                     {
       
 16314                 
       
 16315                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16316                         return return_type_symbol;
       
 16317                         
       
 16318                     }
       
 16319                     
       
 16320                     
       
 16321                     ERROR;
       
 16322                 }
       
 16323                 
       
 16324             }
       
 16325             
       
 16326             
       
 16327             ERROR;
       
 16328         }
       
 16329         
       
 16330     }/*function_le*/
       
 16331     break;
       
 16332 
       
 16333 /****
       
 16334  *NE
       
 16335  */
       
 16336     case function_ne :
       
 16337     {
       
 16338         symbol_c *last_type_symbol = NULL;
       
 16339 
       
 16340         {
       
 16341             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16342             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16343             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16344             symbol_c *IN1_type_symbol = NULL;
       
 16345             
       
 16346             /* Get the value from a foo(<param_value>) style call */
       
 16347             if (IN1_param_value == NULL)
       
 16348               IN1_param_value = function_call_param_iterator.next_nf();
       
 16349             if (IN1_param_value != NULL) {
       
 16350               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16351               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16352             }
       
 16353             
       
 16354             
       
 16355             {
       
 16356         
       
 16357                 {
       
 16358                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16359                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16360                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16361                     symbol_c *IN2_type_symbol = NULL;
       
 16362                     
       
 16363                     /* Get the value from a foo(<param_value>) style call */
       
 16364                     if (IN2_param_value == NULL)
       
 16365                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16366                     if (IN2_param_value != NULL) {
       
 16367                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16368                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16369                     }
       
 16370                     
       
 16371                     
       
 16372                     {
       
 16373                 
       
 16374                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 16375                         return return_type_symbol;
       
 16376                         
       
 16377                     }
       
 16378                     
       
 16379                     
       
 16380                     ERROR;
       
 16381                 }
       
 16382                 
       
 16383             }
       
 16384             
       
 16385             
       
 16386             ERROR;
       
 16387         }
       
 16388         
       
 16389     }/*function_ne*/
       
 16390     break;
       
 16391 
       
 16392 /****
       
 16393  *LEN
       
 16394  */
       
 16395     case function_len :
       
 16396     {
       
 16397         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 16398 
       
 16399         {
       
 16400             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 16401             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16402             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 16403             symbol_c *IN_type_symbol = NULL;
       
 16404             
       
 16405             /* Get the value from a foo(<param_value>) style call */
       
 16406             if (IN_param_value == NULL)
       
 16407               IN_param_value = function_call_param_iterator.next_nf();
       
 16408             if (IN_param_value != NULL) {
       
 16409               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 16410               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 16411             }
       
 16412             
       
 16413             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16414             {
       
 16415         
       
 16416                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 16417                 return return_type_symbol;
       
 16418                 
       
 16419             }
       
 16420             
       
 16421             
       
 16422             ERROR;
       
 16423         }
       
 16424         
       
 16425     }/*function_len*/
       
 16426     break;
       
 16427 
       
 16428 /****
       
 16429  *LEFT
       
 16430  */
       
 16431     case function_left :
       
 16432     {
       
 16433         symbol_c *last_type_symbol = NULL;
       
 16434 
       
 16435         {
       
 16436             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 16437             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16438             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 16439             symbol_c *IN_type_symbol = NULL;
       
 16440             
       
 16441             /* Get the value from a foo(<param_value>) style call */
       
 16442             if (IN_param_value == NULL)
       
 16443               IN_param_value = function_call_param_iterator.next_nf();
       
 16444             if (IN_param_value != NULL) {
       
 16445               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 16446               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 16447             }
       
 16448             
       
 16449             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16450             {
       
 16451         
       
 16452                 {
       
 16453                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 16454                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16455                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 16456                     symbol_c *L_type_symbol = NULL;
       
 16457                     
       
 16458                     /* Get the value from a foo(<param_value>) style call */
       
 16459                     if (L_param_value == NULL)
       
 16460                       L_param_value = function_call_param_iterator.next_nf();
       
 16461                     if (L_param_value != NULL) {
       
 16462                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 16463                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 16464                     }
       
 16465                     
       
 16466                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 16467                     {
       
 16468                 
       
 16469                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16470                         return return_type_symbol;
       
 16471                         
       
 16472                     }
       
 16473                     
       
 16474                     
       
 16475                     ERROR;
       
 16476                 }
       
 16477                 
       
 16478             }
       
 16479             
       
 16480             
       
 16481             ERROR;
       
 16482         }
       
 16483         
       
 16484     }/*function_left*/
       
 16485     break;
       
 16486 
       
 16487 /****
       
 16488  *RIGHT
       
 16489  */
       
 16490     case function_right :
       
 16491     {
       
 16492         symbol_c *last_type_symbol = NULL;
       
 16493 
       
 16494         {
       
 16495             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 16496             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16497             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 16498             symbol_c *IN_type_symbol = NULL;
       
 16499             
       
 16500             /* Get the value from a foo(<param_value>) style call */
       
 16501             if (IN_param_value == NULL)
       
 16502               IN_param_value = function_call_param_iterator.next_nf();
       
 16503             if (IN_param_value != NULL) {
       
 16504               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 16505               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 16506             }
       
 16507             
       
 16508             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16509             {
       
 16510         
       
 16511                 {
       
 16512                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 16513                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16514                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 16515                     symbol_c *L_type_symbol = NULL;
       
 16516                     
       
 16517                     /* Get the value from a foo(<param_value>) style call */
       
 16518                     if (L_param_value == NULL)
       
 16519                       L_param_value = function_call_param_iterator.next_nf();
       
 16520                     if (L_param_value != NULL) {
       
 16521                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 16522                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 16523                     }
       
 16524                     
       
 16525                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 16526                     {
       
 16527                 
       
 16528                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16529                         return return_type_symbol;
       
 16530                         
       
 16531                     }
       
 16532                     
       
 16533                     
       
 16534                     ERROR;
       
 16535                 }
       
 16536                 
       
 16537             }
       
 16538             
       
 16539             
       
 16540             ERROR;
       
 16541         }
       
 16542         
       
 16543     }/*function_right*/
       
 16544     break;
       
 16545 
       
 16546 /****
       
 16547  *MID
       
 16548  */
       
 16549     case function_mid :
       
 16550     {
       
 16551         symbol_c *last_type_symbol = NULL;
       
 16552 
       
 16553         {
       
 16554             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 16555             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16556             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 16557             symbol_c *IN_type_symbol = NULL;
       
 16558             
       
 16559             /* Get the value from a foo(<param_value>) style call */
       
 16560             if (IN_param_value == NULL)
       
 16561               IN_param_value = function_call_param_iterator.next_nf();
       
 16562             if (IN_param_value != NULL) {
       
 16563               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 16564               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 16565             }
       
 16566             
       
 16567             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16568             {
       
 16569         
       
 16570                 {
       
 16571                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 16572                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16573                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 16574                     symbol_c *L_type_symbol = NULL;
       
 16575                     
       
 16576                     /* Get the value from a foo(<param_value>) style call */
       
 16577                     if (L_param_value == NULL)
       
 16578                       L_param_value = function_call_param_iterator.next_nf();
       
 16579                     if (L_param_value != NULL) {
       
 16580                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 16581                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 16582                     }
       
 16583                     
       
 16584                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 16585                     {
       
 16586                 
       
 16587                         {
       
 16588                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 16589                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16590                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 16591                             symbol_c *P_type_symbol = NULL;
       
 16592                             
       
 16593                             /* Get the value from a foo(<param_value>) style call */
       
 16594                             if (P_param_value == NULL)
       
 16595                               P_param_value = function_call_param_iterator.next_nf();
       
 16596                             if (P_param_value != NULL) {
       
 16597                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 16598                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 16599                             }
       
 16600                             
       
 16601                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 16602                             {
       
 16603                         
       
 16604                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16605                                 return return_type_symbol;
       
 16606                                 
       
 16607                             }
       
 16608                             
       
 16609                             
       
 16610                             ERROR;
       
 16611                         }
       
 16612                         
       
 16613                     }
       
 16614                     
       
 16615                     
       
 16616                     ERROR;
       
 16617                 }
       
 16618                 
       
 16619             }
       
 16620             
       
 16621             
       
 16622             ERROR;
       
 16623         }
       
 16624         
       
 16625     }/*function_mid*/
       
 16626     break;
       
 16627 
       
 16628 /****
       
 16629  *CONCAT
       
 16630  */
       
 16631     case function_concat :
       
 16632     {
       
 16633         symbol_c *last_type_symbol = NULL;
       
 16634 
       
 16635         {
       
 16636             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16637             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16638             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16639             symbol_c *IN1_type_symbol = NULL;
       
 16640             
       
 16641             /* Get the value from a foo(<param_value>) style call */
       
 16642             if (IN1_param_value == NULL)
       
 16643               IN1_param_value = function_call_param_iterator.next_nf();
       
 16644             if (IN1_param_value != NULL) {
       
 16645               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16646               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16647             }
       
 16648             
       
 16649             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16650             {
       
 16651         
       
 16652                 {
       
 16653                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16654                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16655                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16656                     symbol_c *IN2_type_symbol = NULL;
       
 16657                     
       
 16658                     /* Get the value from a foo(<param_value>) style call */
       
 16659                     if (IN2_param_value == NULL)
       
 16660                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16661                     if (IN2_param_value != NULL) {
       
 16662                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16663                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16664                     }
       
 16665                     
       
 16666                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16667                     {
       
 16668                 
       
 16669                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16670                         return return_type_symbol;
       
 16671                         
       
 16672                     }
       
 16673                     
       
 16674                     
       
 16675                     ERROR;
       
 16676                 }
       
 16677                 
       
 16678             }
       
 16679             
       
 16680             
       
 16681             ERROR;
       
 16682         }
       
 16683         
       
 16684     }/*function_concat*/
       
 16685     break;
       
 16686 
       
 16687 /****
       
 16688  *CONCAT_DAT_TOD
       
 16689  */
       
 16690     case function_concat_dat_tod :
       
 16691     {
       
 16692         symbol_c *last_type_symbol = NULL;
       
 16693 
       
 16694         {
       
 16695             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16696             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16697             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16698             symbol_c *IN1_type_symbol = NULL;
       
 16699             
       
 16700             /* Get the value from a foo(<param_value>) style call */
       
 16701             if (IN1_param_value == NULL)
       
 16702               IN1_param_value = function_call_param_iterator.next_nf();
       
 16703             if (IN1_param_value != NULL) {
       
 16704               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16705               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16706             }
       
 16707             
       
 16708             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 16709             {
       
 16710         
       
 16711                 {
       
 16712                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16713                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16714                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16715                     symbol_c *IN2_type_symbol = NULL;
       
 16716                     
       
 16717                     /* Get the value from a foo(<param_value>) style call */
       
 16718                     if (IN2_param_value == NULL)
       
 16719                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16720                     if (IN2_param_value != NULL) {
       
 16721                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16722                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16723                     }
       
 16724                     
       
 16725                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 16726                     {
       
 16727                 
       
 16728                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 16729                         return return_type_symbol;
       
 16730                         
       
 16731                     }
       
 16732                     
       
 16733                     
       
 16734                     ERROR;
       
 16735                 }
       
 16736                 
       
 16737             }
       
 16738             
       
 16739             
       
 16740             ERROR;
       
 16741         }
       
 16742         
       
 16743     }/*function_concat_dat_tod*/
       
 16744     break;
       
 16745 
       
 16746 /****
       
 16747  *INSERT
       
 16748  */
       
 16749     case function_insert :
       
 16750     {
       
 16751         symbol_c *last_type_symbol = NULL;
       
 16752 
       
 16753         {
       
 16754             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16755             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16756             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16757             symbol_c *IN1_type_symbol = NULL;
       
 16758             
       
 16759             /* Get the value from a foo(<param_value>) style call */
       
 16760             if (IN1_param_value == NULL)
       
 16761               IN1_param_value = function_call_param_iterator.next_nf();
       
 16762             if (IN1_param_value != NULL) {
       
 16763               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16764               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16765             }
       
 16766             
       
 16767             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16768             {
       
 16769         
       
 16770                 {
       
 16771                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16772                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16773                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16774                     symbol_c *IN2_type_symbol = NULL;
       
 16775                     
       
 16776                     /* Get the value from a foo(<param_value>) style call */
       
 16777                     if (IN2_param_value == NULL)
       
 16778                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16779                     if (IN2_param_value != NULL) {
       
 16780                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16781                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16782                     }
       
 16783                     
       
 16784                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16785                     {
       
 16786                 
       
 16787                         {
       
 16788                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 16789                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16790                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 16791                             symbol_c *P_type_symbol = NULL;
       
 16792                             
       
 16793                             /* Get the value from a foo(<param_value>) style call */
       
 16794                             if (P_param_value == NULL)
       
 16795                               P_param_value = function_call_param_iterator.next_nf();
       
 16796                             if (P_param_value != NULL) {
       
 16797                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 16798                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 16799                             }
       
 16800                             
       
 16801                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 16802                             {
       
 16803                         
       
 16804                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16805                                 return return_type_symbol;
       
 16806                                 
       
 16807                             }
       
 16808                             
       
 16809                             
       
 16810                             ERROR;
       
 16811                         }
       
 16812                         
       
 16813                     }
       
 16814                     
       
 16815                     
       
 16816                     ERROR;
       
 16817                 }
       
 16818                 
       
 16819             }
       
 16820             
       
 16821             
       
 16822             ERROR;
       
 16823         }
       
 16824         
       
 16825     }/*function_insert*/
       
 16826     break;
       
 16827 
       
 16828 /****
       
 16829  *DELETE
       
 16830  */
       
 16831     case function_delete :
       
 16832     {
       
 16833         symbol_c *last_type_symbol = NULL;
       
 16834 
       
 16835         {
       
 16836             symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 16837             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16838             symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 16839             symbol_c *IN_type_symbol = NULL;
       
 16840             
       
 16841             /* Get the value from a foo(<param_value>) style call */
       
 16842             if (IN_param_value == NULL)
       
 16843               IN_param_value = function_call_param_iterator.next_nf();
       
 16844             if (IN_param_value != NULL) {
       
 16845               IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 16846               last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 16847             }
       
 16848             
       
 16849             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16850             {
       
 16851         
       
 16852                 {
       
 16853                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 16854                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16855                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 16856                     symbol_c *L_type_symbol = NULL;
       
 16857                     
       
 16858                     /* Get the value from a foo(<param_value>) style call */
       
 16859                     if (L_param_value == NULL)
       
 16860                       L_param_value = function_call_param_iterator.next_nf();
       
 16861                     if (L_param_value != NULL) {
       
 16862                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 16863                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 16864                     }
       
 16865                     
       
 16866                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 16867                     {
       
 16868                 
       
 16869                         {
       
 16870                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 16871                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16872                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 16873                             symbol_c *P_type_symbol = NULL;
       
 16874                             
       
 16875                             /* Get the value from a foo(<param_value>) style call */
       
 16876                             if (P_param_value == NULL)
       
 16877                               P_param_value = function_call_param_iterator.next_nf();
       
 16878                             if (P_param_value != NULL) {
       
 16879                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 16880                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 16881                             }
       
 16882                             
       
 16883                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 16884                             {
       
 16885                         
       
 16886                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16887                                 return return_type_symbol;
       
 16888                                 
       
 16889                             }
       
 16890                             
       
 16891                             
       
 16892                             ERROR;
       
 16893                         }
       
 16894                         
       
 16895                     }
       
 16896                     
       
 16897                     
       
 16898                     ERROR;
       
 16899                 }
       
 16900                 
       
 16901             }
       
 16902             
       
 16903             
       
 16904             ERROR;
       
 16905         }
       
 16906         
       
 16907     }/*function_delete*/
       
 16908     break;
       
 16909 
       
 16910 /****
       
 16911  *REPLACE
       
 16912  */
       
 16913     case function_replace :
       
 16914     {
       
 16915         symbol_c *last_type_symbol = NULL;
       
 16916 
       
 16917         {
       
 16918             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 16919             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16920             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 16921             symbol_c *IN1_type_symbol = NULL;
       
 16922             
       
 16923             /* Get the value from a foo(<param_value>) style call */
       
 16924             if (IN1_param_value == NULL)
       
 16925               IN1_param_value = function_call_param_iterator.next_nf();
       
 16926             if (IN1_param_value != NULL) {
       
 16927               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 16928               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 16929             }
       
 16930             
       
 16931             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16932             {
       
 16933         
       
 16934                 {
       
 16935                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 16936                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16937                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 16938                     symbol_c *IN2_type_symbol = NULL;
       
 16939                     
       
 16940                     /* Get the value from a foo(<param_value>) style call */
       
 16941                     if (IN2_param_value == NULL)
       
 16942                       IN2_param_value = function_call_param_iterator.next_nf();
       
 16943                     if (IN2_param_value != NULL) {
       
 16944                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 16945                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 16946                     }
       
 16947                     
       
 16948                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 16949                     {
       
 16950                 
       
 16951                         {
       
 16952                             symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 16953                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16954                             symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 16955                             symbol_c *L_type_symbol = NULL;
       
 16956                             
       
 16957                             /* Get the value from a foo(<param_value>) style call */
       
 16958                             if (L_param_value == NULL)
       
 16959                               L_param_value = function_call_param_iterator.next_nf();
       
 16960                             if (L_param_value != NULL) {
       
 16961                               L_type_symbol = search_expression_type->get_type(L_param_value);
       
 16962                               last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 16963                             }
       
 16964                             
       
 16965                             if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 16966                             {
       
 16967                         
       
 16968                                 {
       
 16969                                     symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 16970                                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 16971                                     symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 16972                                     symbol_c *P_type_symbol = NULL;
       
 16973                                     
       
 16974                                     /* Get the value from a foo(<param_value>) style call */
       
 16975                                     if (P_param_value == NULL)
       
 16976                                       P_param_value = function_call_param_iterator.next_nf();
       
 16977                                     if (P_param_value != NULL) {
       
 16978                                       P_type_symbol = search_expression_type->get_type(P_param_value);
       
 16979                                       last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 16980                                     }
       
 16981                                     
       
 16982                                     if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 16983                                     {
       
 16984                                 
       
 16985                                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 16986                                         return return_type_symbol;
       
 16987                                         
       
 16988                                     }
       
 16989                                     
       
 16990                                     
       
 16991                                     ERROR;
       
 16992                                 }
       
 16993                                 
       
 16994                             }
       
 16995                             
       
 16996                             
       
 16997                             ERROR;
       
 16998                         }
       
 16999                         
       
 17000                     }
       
 17001                     
       
 17002                     
       
 17003                     ERROR;
       
 17004                 }
       
 17005                 
       
 17006             }
       
 17007             
       
 17008             
       
 17009             ERROR;
       
 17010         }
       
 17011         
       
 17012     }/*function_replace*/
       
 17013     break;
       
 17014 
       
 17015 /****
       
 17016  *FIND
       
 17017  */
       
 17018     case function_find :
       
 17019     {
       
 17020         symbol_c *last_type_symbol = NULL;
       
 17021 
       
 17022         {
       
 17023             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 17024             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 17025             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 17026             symbol_c *IN1_type_symbol = NULL;
       
 17027             
       
 17028             /* Get the value from a foo(<param_value>) style call */
       
 17029             if (IN1_param_value == NULL)
       
 17030               IN1_param_value = function_call_param_iterator.next_nf();
       
 17031             if (IN1_param_value != NULL) {
       
 17032               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 17033               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 17034             }
       
 17035             
       
 17036             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 17037             {
       
 17038         
       
 17039                 {
       
 17040                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 17041                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 17042                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 17043                     symbol_c *IN2_type_symbol = NULL;
       
 17044                     
       
 17045                     /* Get the value from a foo(<param_value>) style call */
       
 17046                     if (IN2_param_value == NULL)
       
 17047                       IN2_param_value = function_call_param_iterator.next_nf();
       
 17048                     if (IN2_param_value != NULL) {
       
 17049                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 17050                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 17051                     }
       
 17052                     
       
 17053                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 17054                     {
       
 17055                 
       
 17056                         symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 17057                         return return_type_symbol;
       
 17058                         
       
 17059                     }
       
 17060                     
       
 17061                     
       
 17062                     ERROR;
       
 17063                 }
       
 17064                 
       
 17065             }
       
 17066             
       
 17067             
       
 17068             ERROR;
       
 17069         }
       
 17070         
       
 17071     }/*function_find*/
       
 17072     break;
       
 17073 
       
 17074     case function_none :
       
 17075     ERROR;
       
 17076   }
       
 17077   return NULL;
       
 17078 }
       
 17079 
       
 17080 void *search_expression_type_c::compute_standard_function_il(il_function_call_c *symbol, symbol_c *param_data_type) {
       
 17081   
       
 17082   function_type_t current_function_type = get_function_type((identifier_c *)symbol->function_name);
       
 17083   function_call_param_iterator_c function_call_param_iterator(symbol);  
       
 17084   search_expression_type_c* search_expression_type = this;
       
 17085 
       
 17086   switch(current_function_type){
       
 17087 
       
 17088 /****
       
 17089  *REAL_TO_SINT
       
 17090  */
       
 17091     case function_real_to_sint :
       
 17092     {
       
 17093         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17094 
       
 17095         {
       
 17096             symbol_c *IN_type_symbol = param_data_type;
       
 17097             last_type_symbol = IN_type_symbol;
       
 17098             
       
 17099             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17100             {
       
 17101         
       
 17102                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 17103                 return return_type_symbol;
       
 17104                 
       
 17105             }
       
 17106             
       
 17107             
       
 17108             ERROR;
       
 17109         }
       
 17110         
       
 17111     }/*function_real_to_sint*/
       
 17112     break;
       
 17113 
       
 17114 /****
       
 17115  *REAL_TO_LINT
       
 17116  */
       
 17117     case function_real_to_lint :
       
 17118     {
       
 17119         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17120 
       
 17121         {
       
 17122             symbol_c *IN_type_symbol = param_data_type;
       
 17123             last_type_symbol = IN_type_symbol;
       
 17124             
       
 17125             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17126             {
       
 17127         
       
 17128                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17129                 return return_type_symbol;
       
 17130                 
       
 17131             }
       
 17132             
       
 17133             
       
 17134             ERROR;
       
 17135         }
       
 17136         
       
 17137     }/*function_real_to_lint*/
       
 17138     break;
       
 17139 
       
 17140 /****
       
 17141  *REAL_TO_DINT
       
 17142  */
       
 17143     case function_real_to_dint :
       
 17144     {
       
 17145         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17146 
       
 17147         {
       
 17148             symbol_c *IN_type_symbol = param_data_type;
       
 17149             last_type_symbol = IN_type_symbol;
       
 17150             
       
 17151             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17152             {
       
 17153         
       
 17154                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 17155                 return return_type_symbol;
       
 17156                 
       
 17157             }
       
 17158             
       
 17159             
       
 17160             ERROR;
       
 17161         }
       
 17162         
       
 17163     }/*function_real_to_dint*/
       
 17164     break;
       
 17165 
       
 17166 /****
       
 17167  *REAL_TO_DATE
       
 17168  */
       
 17169     case function_real_to_date :
       
 17170     {
       
 17171         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17172 
       
 17173         {
       
 17174             symbol_c *IN_type_symbol = param_data_type;
       
 17175             last_type_symbol = IN_type_symbol;
       
 17176             
       
 17177             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17178             {
       
 17179         
       
 17180                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 17181                 return return_type_symbol;
       
 17182                 
       
 17183             }
       
 17184             
       
 17185             
       
 17186             ERROR;
       
 17187         }
       
 17188         
       
 17189     }/*function_real_to_date*/
       
 17190     break;
       
 17191 
       
 17192 /****
       
 17193  *REAL_TO_DWORD
       
 17194  */
       
 17195     case function_real_to_dword :
       
 17196     {
       
 17197         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17198 
       
 17199         {
       
 17200             symbol_c *IN_type_symbol = param_data_type;
       
 17201             last_type_symbol = IN_type_symbol;
       
 17202             
       
 17203             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17204             {
       
 17205         
       
 17206                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 17207                 return return_type_symbol;
       
 17208                 
       
 17209             }
       
 17210             
       
 17211             
       
 17212             ERROR;
       
 17213         }
       
 17214         
       
 17215     }/*function_real_to_dword*/
       
 17216     break;
       
 17217 
       
 17218 /****
       
 17219  *REAL_TO_DT
       
 17220  */
       
 17221     case function_real_to_dt :
       
 17222     {
       
 17223         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17224 
       
 17225         {
       
 17226             symbol_c *IN_type_symbol = param_data_type;
       
 17227             last_type_symbol = IN_type_symbol;
       
 17228             
       
 17229             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17230             {
       
 17231         
       
 17232                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 17233                 return return_type_symbol;
       
 17234                 
       
 17235             }
       
 17236             
       
 17237             
       
 17238             ERROR;
       
 17239         }
       
 17240         
       
 17241     }/*function_real_to_dt*/
       
 17242     break;
       
 17243 
       
 17244 /****
       
 17245  *REAL_TO_TOD
       
 17246  */
       
 17247     case function_real_to_tod :
       
 17248     {
       
 17249         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17250 
       
 17251         {
       
 17252             symbol_c *IN_type_symbol = param_data_type;
       
 17253             last_type_symbol = IN_type_symbol;
       
 17254             
       
 17255             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17256             {
       
 17257         
       
 17258                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 17259                 return return_type_symbol;
       
 17260                 
       
 17261             }
       
 17262             
       
 17263             
       
 17264             ERROR;
       
 17265         }
       
 17266         
       
 17267     }/*function_real_to_tod*/
       
 17268     break;
       
 17269 
       
 17270 /****
       
 17271  *REAL_TO_UDINT
       
 17272  */
       
 17273     case function_real_to_udint :
       
 17274     {
       
 17275         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17276 
       
 17277         {
       
 17278             symbol_c *IN_type_symbol = param_data_type;
       
 17279             last_type_symbol = IN_type_symbol;
       
 17280             
       
 17281             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17282             {
       
 17283         
       
 17284                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 17285                 return return_type_symbol;
       
 17286                 
       
 17287             }
       
 17288             
       
 17289             
       
 17290             ERROR;
       
 17291         }
       
 17292         
       
 17293     }/*function_real_to_udint*/
       
 17294     break;
       
 17295 
       
 17296 /****
       
 17297  *REAL_TO_WORD
       
 17298  */
       
 17299     case function_real_to_word :
       
 17300     {
       
 17301         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17302 
       
 17303         {
       
 17304             symbol_c *IN_type_symbol = param_data_type;
       
 17305             last_type_symbol = IN_type_symbol;
       
 17306             
       
 17307             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17308             {
       
 17309         
       
 17310                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 17311                 return return_type_symbol;
       
 17312                 
       
 17313             }
       
 17314             
       
 17315             
       
 17316             ERROR;
       
 17317         }
       
 17318         
       
 17319     }/*function_real_to_word*/
       
 17320     break;
       
 17321 
       
 17322 /****
       
 17323  *REAL_TO_STRING
       
 17324  */
       
 17325     case function_real_to_string :
       
 17326     {
       
 17327         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17328 
       
 17329         {
       
 17330             symbol_c *IN_type_symbol = param_data_type;
       
 17331             last_type_symbol = IN_type_symbol;
       
 17332             
       
 17333             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17334             {
       
 17335         
       
 17336                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 17337                 return return_type_symbol;
       
 17338                 
       
 17339             }
       
 17340             
       
 17341             
       
 17342             ERROR;
       
 17343         }
       
 17344         
       
 17345     }/*function_real_to_string*/
       
 17346     break;
       
 17347 
       
 17348 /****
       
 17349  *REAL_TO_LWORD
       
 17350  */
       
 17351     case function_real_to_lword :
       
 17352     {
       
 17353         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17354 
       
 17355         {
       
 17356             symbol_c *IN_type_symbol = param_data_type;
       
 17357             last_type_symbol = IN_type_symbol;
       
 17358             
       
 17359             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17360             {
       
 17361         
       
 17362                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 17363                 return return_type_symbol;
       
 17364                 
       
 17365             }
       
 17366             
       
 17367             
       
 17368             ERROR;
       
 17369         }
       
 17370         
       
 17371     }/*function_real_to_lword*/
       
 17372     break;
       
 17373 
       
 17374 /****
       
 17375  *REAL_TO_UINT
       
 17376  */
       
 17377     case function_real_to_uint :
       
 17378     {
       
 17379         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17380 
       
 17381         {
       
 17382             symbol_c *IN_type_symbol = param_data_type;
       
 17383             last_type_symbol = IN_type_symbol;
       
 17384             
       
 17385             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17386             {
       
 17387         
       
 17388                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 17389                 return return_type_symbol;
       
 17390                 
       
 17391             }
       
 17392             
       
 17393             
       
 17394             ERROR;
       
 17395         }
       
 17396         
       
 17397     }/*function_real_to_uint*/
       
 17398     break;
       
 17399 
       
 17400 /****
       
 17401  *REAL_TO_LREAL
       
 17402  */
       
 17403     case function_real_to_lreal :
       
 17404     {
       
 17405         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17406 
       
 17407         {
       
 17408             symbol_c *IN_type_symbol = param_data_type;
       
 17409             last_type_symbol = IN_type_symbol;
       
 17410             
       
 17411             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17412             {
       
 17413         
       
 17414                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17415                 return return_type_symbol;
       
 17416                 
       
 17417             }
       
 17418             
       
 17419             
       
 17420             ERROR;
       
 17421         }
       
 17422         
       
 17423     }/*function_real_to_lreal*/
       
 17424     break;
       
 17425 
       
 17426 /****
       
 17427  *REAL_TO_BYTE
       
 17428  */
       
 17429     case function_real_to_byte :
       
 17430     {
       
 17431         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17432 
       
 17433         {
       
 17434             symbol_c *IN_type_symbol = param_data_type;
       
 17435             last_type_symbol = IN_type_symbol;
       
 17436             
       
 17437             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17438             {
       
 17439         
       
 17440                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 17441                 return return_type_symbol;
       
 17442                 
       
 17443             }
       
 17444             
       
 17445             
       
 17446             ERROR;
       
 17447         }
       
 17448         
       
 17449     }/*function_real_to_byte*/
       
 17450     break;
       
 17451 
       
 17452 /****
       
 17453  *REAL_TO_USINT
       
 17454  */
       
 17455     case function_real_to_usint :
       
 17456     {
       
 17457         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17458 
       
 17459         {
       
 17460             symbol_c *IN_type_symbol = param_data_type;
       
 17461             last_type_symbol = IN_type_symbol;
       
 17462             
       
 17463             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17464             {
       
 17465         
       
 17466                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 17467                 return return_type_symbol;
       
 17468                 
       
 17469             }
       
 17470             
       
 17471             
       
 17472             ERROR;
       
 17473         }
       
 17474         
       
 17475     }/*function_real_to_usint*/
       
 17476     break;
       
 17477 
       
 17478 /****
       
 17479  *REAL_TO_ULINT
       
 17480  */
       
 17481     case function_real_to_ulint :
       
 17482     {
       
 17483         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17484 
       
 17485         {
       
 17486             symbol_c *IN_type_symbol = param_data_type;
       
 17487             last_type_symbol = IN_type_symbol;
       
 17488             
       
 17489             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17490             {
       
 17491         
       
 17492                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 17493                 return return_type_symbol;
       
 17494                 
       
 17495             }
       
 17496             
       
 17497             
       
 17498             ERROR;
       
 17499         }
       
 17500         
       
 17501     }/*function_real_to_ulint*/
       
 17502     break;
       
 17503 
       
 17504 /****
       
 17505  *REAL_TO_BOOL
       
 17506  */
       
 17507     case function_real_to_bool :
       
 17508     {
       
 17509         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17510 
       
 17511         {
       
 17512             symbol_c *IN_type_symbol = param_data_type;
       
 17513             last_type_symbol = IN_type_symbol;
       
 17514             
       
 17515             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17516             {
       
 17517         
       
 17518                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 17519                 return return_type_symbol;
       
 17520                 
       
 17521             }
       
 17522             
       
 17523             
       
 17524             ERROR;
       
 17525         }
       
 17526         
       
 17527     }/*function_real_to_bool*/
       
 17528     break;
       
 17529 
       
 17530 /****
       
 17531  *REAL_TO_TIME
       
 17532  */
       
 17533     case function_real_to_time :
       
 17534     {
       
 17535         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17536 
       
 17537         {
       
 17538             symbol_c *IN_type_symbol = param_data_type;
       
 17539             last_type_symbol = IN_type_symbol;
       
 17540             
       
 17541             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17542             {
       
 17543         
       
 17544                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 17545                 return return_type_symbol;
       
 17546                 
       
 17547             }
       
 17548             
       
 17549             
       
 17550             ERROR;
       
 17551         }
       
 17552         
       
 17553     }/*function_real_to_time*/
       
 17554     break;
       
 17555 
       
 17556 /****
       
 17557  *REAL_TO_INT
       
 17558  */
       
 17559     case function_real_to_int :
       
 17560     {
       
 17561         symbol_c *last_type_symbol = &search_constant_type_c::real_type_name;
       
 17562 
       
 17563         {
       
 17564             symbol_c *IN_type_symbol = param_data_type;
       
 17565             last_type_symbol = IN_type_symbol;
       
 17566             
       
 17567             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
       
 17568             {
       
 17569         
       
 17570                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 17571                 return return_type_symbol;
       
 17572                 
       
 17573             }
       
 17574             
       
 17575             
       
 17576             ERROR;
       
 17577         }
       
 17578         
       
 17579     }/*function_real_to_int*/
       
 17580     break;
       
 17581 
       
 17582 /****
       
 17583  *SINT_TO_REAL
       
 17584  */
       
 17585     case function_sint_to_real :
       
 17586     {
       
 17587         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17588 
       
 17589         {
       
 17590             symbol_c *IN_type_symbol = param_data_type;
       
 17591             last_type_symbol = IN_type_symbol;
       
 17592             
       
 17593             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17594             {
       
 17595         
       
 17596                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 17597                 return return_type_symbol;
       
 17598                 
       
 17599             }
       
 17600             
       
 17601             
       
 17602             ERROR;
       
 17603         }
       
 17604         
       
 17605     }/*function_sint_to_real*/
       
 17606     break;
       
 17607 
       
 17608 /****
       
 17609  *SINT_TO_LINT
       
 17610  */
       
 17611     case function_sint_to_lint :
       
 17612     {
       
 17613         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17614 
       
 17615         {
       
 17616             symbol_c *IN_type_symbol = param_data_type;
       
 17617             last_type_symbol = IN_type_symbol;
       
 17618             
       
 17619             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17620             {
       
 17621         
       
 17622                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 17623                 return return_type_symbol;
       
 17624                 
       
 17625             }
       
 17626             
       
 17627             
       
 17628             ERROR;
       
 17629         }
       
 17630         
       
 17631     }/*function_sint_to_lint*/
       
 17632     break;
       
 17633 
       
 17634 /****
       
 17635  *SINT_TO_DINT
       
 17636  */
       
 17637     case function_sint_to_dint :
       
 17638     {
       
 17639         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17640 
       
 17641         {
       
 17642             symbol_c *IN_type_symbol = param_data_type;
       
 17643             last_type_symbol = IN_type_symbol;
       
 17644             
       
 17645             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17646             {
       
 17647         
       
 17648                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 17649                 return return_type_symbol;
       
 17650                 
       
 17651             }
       
 17652             
       
 17653             
       
 17654             ERROR;
       
 17655         }
       
 17656         
       
 17657     }/*function_sint_to_dint*/
       
 17658     break;
       
 17659 
       
 17660 /****
       
 17661  *SINT_TO_DATE
       
 17662  */
       
 17663     case function_sint_to_date :
       
 17664     {
       
 17665         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17666 
       
 17667         {
       
 17668             symbol_c *IN_type_symbol = param_data_type;
       
 17669             last_type_symbol = IN_type_symbol;
       
 17670             
       
 17671             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17672             {
       
 17673         
       
 17674                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 17675                 return return_type_symbol;
       
 17676                 
       
 17677             }
       
 17678             
       
 17679             
       
 17680             ERROR;
       
 17681         }
       
 17682         
       
 17683     }/*function_sint_to_date*/
       
 17684     break;
       
 17685 
       
 17686 /****
       
 17687  *SINT_TO_DWORD
       
 17688  */
       
 17689     case function_sint_to_dword :
       
 17690     {
       
 17691         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17692 
       
 17693         {
       
 17694             symbol_c *IN_type_symbol = param_data_type;
       
 17695             last_type_symbol = IN_type_symbol;
       
 17696             
       
 17697             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17698             {
       
 17699         
       
 17700                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 17701                 return return_type_symbol;
       
 17702                 
       
 17703             }
       
 17704             
       
 17705             
       
 17706             ERROR;
       
 17707         }
       
 17708         
       
 17709     }/*function_sint_to_dword*/
       
 17710     break;
       
 17711 
       
 17712 /****
       
 17713  *SINT_TO_DT
       
 17714  */
       
 17715     case function_sint_to_dt :
       
 17716     {
       
 17717         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17718 
       
 17719         {
       
 17720             symbol_c *IN_type_symbol = param_data_type;
       
 17721             last_type_symbol = IN_type_symbol;
       
 17722             
       
 17723             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17724             {
       
 17725         
       
 17726                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 17727                 return return_type_symbol;
       
 17728                 
       
 17729             }
       
 17730             
       
 17731             
       
 17732             ERROR;
       
 17733         }
       
 17734         
       
 17735     }/*function_sint_to_dt*/
       
 17736     break;
       
 17737 
       
 17738 /****
       
 17739  *SINT_TO_TOD
       
 17740  */
       
 17741     case function_sint_to_tod :
       
 17742     {
       
 17743         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17744 
       
 17745         {
       
 17746             symbol_c *IN_type_symbol = param_data_type;
       
 17747             last_type_symbol = IN_type_symbol;
       
 17748             
       
 17749             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17750             {
       
 17751         
       
 17752                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 17753                 return return_type_symbol;
       
 17754                 
       
 17755             }
       
 17756             
       
 17757             
       
 17758             ERROR;
       
 17759         }
       
 17760         
       
 17761     }/*function_sint_to_tod*/
       
 17762     break;
       
 17763 
       
 17764 /****
       
 17765  *SINT_TO_UDINT
       
 17766  */
       
 17767     case function_sint_to_udint :
       
 17768     {
       
 17769         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17770 
       
 17771         {
       
 17772             symbol_c *IN_type_symbol = param_data_type;
       
 17773             last_type_symbol = IN_type_symbol;
       
 17774             
       
 17775             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17776             {
       
 17777         
       
 17778                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 17779                 return return_type_symbol;
       
 17780                 
       
 17781             }
       
 17782             
       
 17783             
       
 17784             ERROR;
       
 17785         }
       
 17786         
       
 17787     }/*function_sint_to_udint*/
       
 17788     break;
       
 17789 
       
 17790 /****
       
 17791  *SINT_TO_WORD
       
 17792  */
       
 17793     case function_sint_to_word :
       
 17794     {
       
 17795         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17796 
       
 17797         {
       
 17798             symbol_c *IN_type_symbol = param_data_type;
       
 17799             last_type_symbol = IN_type_symbol;
       
 17800             
       
 17801             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17802             {
       
 17803         
       
 17804                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 17805                 return return_type_symbol;
       
 17806                 
       
 17807             }
       
 17808             
       
 17809             
       
 17810             ERROR;
       
 17811         }
       
 17812         
       
 17813     }/*function_sint_to_word*/
       
 17814     break;
       
 17815 
       
 17816 /****
       
 17817  *SINT_TO_STRING
       
 17818  */
       
 17819     case function_sint_to_string :
       
 17820     {
       
 17821         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17822 
       
 17823         {
       
 17824             symbol_c *IN_type_symbol = param_data_type;
       
 17825             last_type_symbol = IN_type_symbol;
       
 17826             
       
 17827             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17828             {
       
 17829         
       
 17830                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 17831                 return return_type_symbol;
       
 17832                 
       
 17833             }
       
 17834             
       
 17835             
       
 17836             ERROR;
       
 17837         }
       
 17838         
       
 17839     }/*function_sint_to_string*/
       
 17840     break;
       
 17841 
       
 17842 /****
       
 17843  *SINT_TO_LWORD
       
 17844  */
       
 17845     case function_sint_to_lword :
       
 17846     {
       
 17847         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17848 
       
 17849         {
       
 17850             symbol_c *IN_type_symbol = param_data_type;
       
 17851             last_type_symbol = IN_type_symbol;
       
 17852             
       
 17853             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17854             {
       
 17855         
       
 17856                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 17857                 return return_type_symbol;
       
 17858                 
       
 17859             }
       
 17860             
       
 17861             
       
 17862             ERROR;
       
 17863         }
       
 17864         
       
 17865     }/*function_sint_to_lword*/
       
 17866     break;
       
 17867 
       
 17868 /****
       
 17869  *SINT_TO_UINT
       
 17870  */
       
 17871     case function_sint_to_uint :
       
 17872     {
       
 17873         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17874 
       
 17875         {
       
 17876             symbol_c *IN_type_symbol = param_data_type;
       
 17877             last_type_symbol = IN_type_symbol;
       
 17878             
       
 17879             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17880             {
       
 17881         
       
 17882                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 17883                 return return_type_symbol;
       
 17884                 
       
 17885             }
       
 17886             
       
 17887             
       
 17888             ERROR;
       
 17889         }
       
 17890         
       
 17891     }/*function_sint_to_uint*/
       
 17892     break;
       
 17893 
       
 17894 /****
       
 17895  *SINT_TO_LREAL
       
 17896  */
       
 17897     case function_sint_to_lreal :
       
 17898     {
       
 17899         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17900 
       
 17901         {
       
 17902             symbol_c *IN_type_symbol = param_data_type;
       
 17903             last_type_symbol = IN_type_symbol;
       
 17904             
       
 17905             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17906             {
       
 17907         
       
 17908                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 17909                 return return_type_symbol;
       
 17910                 
       
 17911             }
       
 17912             
       
 17913             
       
 17914             ERROR;
       
 17915         }
       
 17916         
       
 17917     }/*function_sint_to_lreal*/
       
 17918     break;
       
 17919 
       
 17920 /****
       
 17921  *SINT_TO_BYTE
       
 17922  */
       
 17923     case function_sint_to_byte :
       
 17924     {
       
 17925         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17926 
       
 17927         {
       
 17928             symbol_c *IN_type_symbol = param_data_type;
       
 17929             last_type_symbol = IN_type_symbol;
       
 17930             
       
 17931             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17932             {
       
 17933         
       
 17934                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 17935                 return return_type_symbol;
       
 17936                 
       
 17937             }
       
 17938             
       
 17939             
       
 17940             ERROR;
       
 17941         }
       
 17942         
       
 17943     }/*function_sint_to_byte*/
       
 17944     break;
       
 17945 
       
 17946 /****
       
 17947  *SINT_TO_USINT
       
 17948  */
       
 17949     case function_sint_to_usint :
       
 17950     {
       
 17951         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17952 
       
 17953         {
       
 17954             symbol_c *IN_type_symbol = param_data_type;
       
 17955             last_type_symbol = IN_type_symbol;
       
 17956             
       
 17957             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17958             {
       
 17959         
       
 17960                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 17961                 return return_type_symbol;
       
 17962                 
       
 17963             }
       
 17964             
       
 17965             
       
 17966             ERROR;
       
 17967         }
       
 17968         
       
 17969     }/*function_sint_to_usint*/
       
 17970     break;
       
 17971 
       
 17972 /****
       
 17973  *SINT_TO_ULINT
       
 17974  */
       
 17975     case function_sint_to_ulint :
       
 17976     {
       
 17977         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 17978 
       
 17979         {
       
 17980             symbol_c *IN_type_symbol = param_data_type;
       
 17981             last_type_symbol = IN_type_symbol;
       
 17982             
       
 17983             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 17984             {
       
 17985         
       
 17986                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 17987                 return return_type_symbol;
       
 17988                 
       
 17989             }
       
 17990             
       
 17991             
       
 17992             ERROR;
       
 17993         }
       
 17994         
       
 17995     }/*function_sint_to_ulint*/
       
 17996     break;
       
 17997 
       
 17998 /****
       
 17999  *SINT_TO_BOOL
       
 18000  */
       
 18001     case function_sint_to_bool :
       
 18002     {
       
 18003         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 18004 
       
 18005         {
       
 18006             symbol_c *IN_type_symbol = param_data_type;
       
 18007             last_type_symbol = IN_type_symbol;
       
 18008             
       
 18009             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 18010             {
       
 18011         
       
 18012                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 18013                 return return_type_symbol;
       
 18014                 
       
 18015             }
       
 18016             
       
 18017             
       
 18018             ERROR;
       
 18019         }
       
 18020         
       
 18021     }/*function_sint_to_bool*/
       
 18022     break;
       
 18023 
       
 18024 /****
       
 18025  *SINT_TO_TIME
       
 18026  */
       
 18027     case function_sint_to_time :
       
 18028     {
       
 18029         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 18030 
       
 18031         {
       
 18032             symbol_c *IN_type_symbol = param_data_type;
       
 18033             last_type_symbol = IN_type_symbol;
       
 18034             
       
 18035             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 18036             {
       
 18037         
       
 18038                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 18039                 return return_type_symbol;
       
 18040                 
       
 18041             }
       
 18042             
       
 18043             
       
 18044             ERROR;
       
 18045         }
       
 18046         
       
 18047     }/*function_sint_to_time*/
       
 18048     break;
       
 18049 
       
 18050 /****
       
 18051  *SINT_TO_INT
       
 18052  */
       
 18053     case function_sint_to_int :
       
 18054     {
       
 18055         symbol_c *last_type_symbol = &search_constant_type_c::sint_type_name;
       
 18056 
       
 18057         {
       
 18058             symbol_c *IN_type_symbol = param_data_type;
       
 18059             last_type_symbol = IN_type_symbol;
       
 18060             
       
 18061             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
       
 18062             {
       
 18063         
       
 18064                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 18065                 return return_type_symbol;
       
 18066                 
       
 18067             }
       
 18068             
       
 18069             
       
 18070             ERROR;
       
 18071         }
       
 18072         
       
 18073     }/*function_sint_to_int*/
       
 18074     break;
       
 18075 
       
 18076 /****
       
 18077  *LINT_TO_REAL
       
 18078  */
       
 18079     case function_lint_to_real :
       
 18080     {
       
 18081         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18082 
       
 18083         {
       
 18084             symbol_c *IN_type_symbol = param_data_type;
       
 18085             last_type_symbol = IN_type_symbol;
       
 18086             
       
 18087             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18088             {
       
 18089         
       
 18090                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 18091                 return return_type_symbol;
       
 18092                 
       
 18093             }
       
 18094             
       
 18095             
       
 18096             ERROR;
       
 18097         }
       
 18098         
       
 18099     }/*function_lint_to_real*/
       
 18100     break;
       
 18101 
       
 18102 /****
       
 18103  *LINT_TO_SINT
       
 18104  */
       
 18105     case function_lint_to_sint :
       
 18106     {
       
 18107         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18108 
       
 18109         {
       
 18110             symbol_c *IN_type_symbol = param_data_type;
       
 18111             last_type_symbol = IN_type_symbol;
       
 18112             
       
 18113             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18114             {
       
 18115         
       
 18116                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 18117                 return return_type_symbol;
       
 18118                 
       
 18119             }
       
 18120             
       
 18121             
       
 18122             ERROR;
       
 18123         }
       
 18124         
       
 18125     }/*function_lint_to_sint*/
       
 18126     break;
       
 18127 
       
 18128 /****
       
 18129  *LINT_TO_DINT
       
 18130  */
       
 18131     case function_lint_to_dint :
       
 18132     {
       
 18133         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18134 
       
 18135         {
       
 18136             symbol_c *IN_type_symbol = param_data_type;
       
 18137             last_type_symbol = IN_type_symbol;
       
 18138             
       
 18139             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18140             {
       
 18141         
       
 18142                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 18143                 return return_type_symbol;
       
 18144                 
       
 18145             }
       
 18146             
       
 18147             
       
 18148             ERROR;
       
 18149         }
       
 18150         
       
 18151     }/*function_lint_to_dint*/
       
 18152     break;
       
 18153 
       
 18154 /****
       
 18155  *LINT_TO_DATE
       
 18156  */
       
 18157     case function_lint_to_date :
       
 18158     {
       
 18159         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18160 
       
 18161         {
       
 18162             symbol_c *IN_type_symbol = param_data_type;
       
 18163             last_type_symbol = IN_type_symbol;
       
 18164             
       
 18165             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18166             {
       
 18167         
       
 18168                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 18169                 return return_type_symbol;
       
 18170                 
       
 18171             }
       
 18172             
       
 18173             
       
 18174             ERROR;
       
 18175         }
       
 18176         
       
 18177     }/*function_lint_to_date*/
       
 18178     break;
       
 18179 
       
 18180 /****
       
 18181  *LINT_TO_DWORD
       
 18182  */
       
 18183     case function_lint_to_dword :
       
 18184     {
       
 18185         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18186 
       
 18187         {
       
 18188             symbol_c *IN_type_symbol = param_data_type;
       
 18189             last_type_symbol = IN_type_symbol;
       
 18190             
       
 18191             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18192             {
       
 18193         
       
 18194                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 18195                 return return_type_symbol;
       
 18196                 
       
 18197             }
       
 18198             
       
 18199             
       
 18200             ERROR;
       
 18201         }
       
 18202         
       
 18203     }/*function_lint_to_dword*/
       
 18204     break;
       
 18205 
       
 18206 /****
       
 18207  *LINT_TO_DT
       
 18208  */
       
 18209     case function_lint_to_dt :
       
 18210     {
       
 18211         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18212 
       
 18213         {
       
 18214             symbol_c *IN_type_symbol = param_data_type;
       
 18215             last_type_symbol = IN_type_symbol;
       
 18216             
       
 18217             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18218             {
       
 18219         
       
 18220                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 18221                 return return_type_symbol;
       
 18222                 
       
 18223             }
       
 18224             
       
 18225             
       
 18226             ERROR;
       
 18227         }
       
 18228         
       
 18229     }/*function_lint_to_dt*/
       
 18230     break;
       
 18231 
       
 18232 /****
       
 18233  *LINT_TO_TOD
       
 18234  */
       
 18235     case function_lint_to_tod :
       
 18236     {
       
 18237         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18238 
       
 18239         {
       
 18240             symbol_c *IN_type_symbol = param_data_type;
       
 18241             last_type_symbol = IN_type_symbol;
       
 18242             
       
 18243             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18244             {
       
 18245         
       
 18246                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 18247                 return return_type_symbol;
       
 18248                 
       
 18249             }
       
 18250             
       
 18251             
       
 18252             ERROR;
       
 18253         }
       
 18254         
       
 18255     }/*function_lint_to_tod*/
       
 18256     break;
       
 18257 
       
 18258 /****
       
 18259  *LINT_TO_UDINT
       
 18260  */
       
 18261     case function_lint_to_udint :
       
 18262     {
       
 18263         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18264 
       
 18265         {
       
 18266             symbol_c *IN_type_symbol = param_data_type;
       
 18267             last_type_symbol = IN_type_symbol;
       
 18268             
       
 18269             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18270             {
       
 18271         
       
 18272                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 18273                 return return_type_symbol;
       
 18274                 
       
 18275             }
       
 18276             
       
 18277             
       
 18278             ERROR;
       
 18279         }
       
 18280         
       
 18281     }/*function_lint_to_udint*/
       
 18282     break;
       
 18283 
       
 18284 /****
       
 18285  *LINT_TO_WORD
       
 18286  */
       
 18287     case function_lint_to_word :
       
 18288     {
       
 18289         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18290 
       
 18291         {
       
 18292             symbol_c *IN_type_symbol = param_data_type;
       
 18293             last_type_symbol = IN_type_symbol;
       
 18294             
       
 18295             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18296             {
       
 18297         
       
 18298                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 18299                 return return_type_symbol;
       
 18300                 
       
 18301             }
       
 18302             
       
 18303             
       
 18304             ERROR;
       
 18305         }
       
 18306         
       
 18307     }/*function_lint_to_word*/
       
 18308     break;
       
 18309 
       
 18310 /****
       
 18311  *LINT_TO_STRING
       
 18312  */
       
 18313     case function_lint_to_string :
       
 18314     {
       
 18315         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18316 
       
 18317         {
       
 18318             symbol_c *IN_type_symbol = param_data_type;
       
 18319             last_type_symbol = IN_type_symbol;
       
 18320             
       
 18321             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18322             {
       
 18323         
       
 18324                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 18325                 return return_type_symbol;
       
 18326                 
       
 18327             }
       
 18328             
       
 18329             
       
 18330             ERROR;
       
 18331         }
       
 18332         
       
 18333     }/*function_lint_to_string*/
       
 18334     break;
       
 18335 
       
 18336 /****
       
 18337  *LINT_TO_LWORD
       
 18338  */
       
 18339     case function_lint_to_lword :
       
 18340     {
       
 18341         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18342 
       
 18343         {
       
 18344             symbol_c *IN_type_symbol = param_data_type;
       
 18345             last_type_symbol = IN_type_symbol;
       
 18346             
       
 18347             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18348             {
       
 18349         
       
 18350                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 18351                 return return_type_symbol;
       
 18352                 
       
 18353             }
       
 18354             
       
 18355             
       
 18356             ERROR;
       
 18357         }
       
 18358         
       
 18359     }/*function_lint_to_lword*/
       
 18360     break;
       
 18361 
       
 18362 /****
       
 18363  *LINT_TO_UINT
       
 18364  */
       
 18365     case function_lint_to_uint :
       
 18366     {
       
 18367         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18368 
       
 18369         {
       
 18370             symbol_c *IN_type_symbol = param_data_type;
       
 18371             last_type_symbol = IN_type_symbol;
       
 18372             
       
 18373             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18374             {
       
 18375         
       
 18376                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 18377                 return return_type_symbol;
       
 18378                 
       
 18379             }
       
 18380             
       
 18381             
       
 18382             ERROR;
       
 18383         }
       
 18384         
       
 18385     }/*function_lint_to_uint*/
       
 18386     break;
       
 18387 
       
 18388 /****
       
 18389  *LINT_TO_LREAL
       
 18390  */
       
 18391     case function_lint_to_lreal :
       
 18392     {
       
 18393         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18394 
       
 18395         {
       
 18396             symbol_c *IN_type_symbol = param_data_type;
       
 18397             last_type_symbol = IN_type_symbol;
       
 18398             
       
 18399             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18400             {
       
 18401         
       
 18402                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18403                 return return_type_symbol;
       
 18404                 
       
 18405             }
       
 18406             
       
 18407             
       
 18408             ERROR;
       
 18409         }
       
 18410         
       
 18411     }/*function_lint_to_lreal*/
       
 18412     break;
       
 18413 
       
 18414 /****
       
 18415  *LINT_TO_BYTE
       
 18416  */
       
 18417     case function_lint_to_byte :
       
 18418     {
       
 18419         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18420 
       
 18421         {
       
 18422             symbol_c *IN_type_symbol = param_data_type;
       
 18423             last_type_symbol = IN_type_symbol;
       
 18424             
       
 18425             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18426             {
       
 18427         
       
 18428                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 18429                 return return_type_symbol;
       
 18430                 
       
 18431             }
       
 18432             
       
 18433             
       
 18434             ERROR;
       
 18435         }
       
 18436         
       
 18437     }/*function_lint_to_byte*/
       
 18438     break;
       
 18439 
       
 18440 /****
       
 18441  *LINT_TO_USINT
       
 18442  */
       
 18443     case function_lint_to_usint :
       
 18444     {
       
 18445         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18446 
       
 18447         {
       
 18448             symbol_c *IN_type_symbol = param_data_type;
       
 18449             last_type_symbol = IN_type_symbol;
       
 18450             
       
 18451             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18452             {
       
 18453         
       
 18454                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 18455                 return return_type_symbol;
       
 18456                 
       
 18457             }
       
 18458             
       
 18459             
       
 18460             ERROR;
       
 18461         }
       
 18462         
       
 18463     }/*function_lint_to_usint*/
       
 18464     break;
       
 18465 
       
 18466 /****
       
 18467  *LINT_TO_ULINT
       
 18468  */
       
 18469     case function_lint_to_ulint :
       
 18470     {
       
 18471         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18472 
       
 18473         {
       
 18474             symbol_c *IN_type_symbol = param_data_type;
       
 18475             last_type_symbol = IN_type_symbol;
       
 18476             
       
 18477             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18478             {
       
 18479         
       
 18480                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 18481                 return return_type_symbol;
       
 18482                 
       
 18483             }
       
 18484             
       
 18485             
       
 18486             ERROR;
       
 18487         }
       
 18488         
       
 18489     }/*function_lint_to_ulint*/
       
 18490     break;
       
 18491 
       
 18492 /****
       
 18493  *LINT_TO_BOOL
       
 18494  */
       
 18495     case function_lint_to_bool :
       
 18496     {
       
 18497         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18498 
       
 18499         {
       
 18500             symbol_c *IN_type_symbol = param_data_type;
       
 18501             last_type_symbol = IN_type_symbol;
       
 18502             
       
 18503             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18504             {
       
 18505         
       
 18506                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 18507                 return return_type_symbol;
       
 18508                 
       
 18509             }
       
 18510             
       
 18511             
       
 18512             ERROR;
       
 18513         }
       
 18514         
       
 18515     }/*function_lint_to_bool*/
       
 18516     break;
       
 18517 
       
 18518 /****
       
 18519  *LINT_TO_TIME
       
 18520  */
       
 18521     case function_lint_to_time :
       
 18522     {
       
 18523         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18524 
       
 18525         {
       
 18526             symbol_c *IN_type_symbol = param_data_type;
       
 18527             last_type_symbol = IN_type_symbol;
       
 18528             
       
 18529             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18530             {
       
 18531         
       
 18532                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 18533                 return return_type_symbol;
       
 18534                 
       
 18535             }
       
 18536             
       
 18537             
       
 18538             ERROR;
       
 18539         }
       
 18540         
       
 18541     }/*function_lint_to_time*/
       
 18542     break;
       
 18543 
       
 18544 /****
       
 18545  *LINT_TO_INT
       
 18546  */
       
 18547     case function_lint_to_int :
       
 18548     {
       
 18549         symbol_c *last_type_symbol = &search_constant_type_c::lint_type_name;
       
 18550 
       
 18551         {
       
 18552             symbol_c *IN_type_symbol = param_data_type;
       
 18553             last_type_symbol = IN_type_symbol;
       
 18554             
       
 18555             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
       
 18556             {
       
 18557         
       
 18558                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 18559                 return return_type_symbol;
       
 18560                 
       
 18561             }
       
 18562             
       
 18563             
       
 18564             ERROR;
       
 18565         }
       
 18566         
       
 18567     }/*function_lint_to_int*/
       
 18568     break;
       
 18569 
       
 18570 /****
       
 18571  *DINT_TO_REAL
       
 18572  */
       
 18573     case function_dint_to_real :
       
 18574     {
       
 18575         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18576 
       
 18577         {
       
 18578             symbol_c *IN_type_symbol = param_data_type;
       
 18579             last_type_symbol = IN_type_symbol;
       
 18580             
       
 18581             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18582             {
       
 18583         
       
 18584                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 18585                 return return_type_symbol;
       
 18586                 
       
 18587             }
       
 18588             
       
 18589             
       
 18590             ERROR;
       
 18591         }
       
 18592         
       
 18593     }/*function_dint_to_real*/
       
 18594     break;
       
 18595 
       
 18596 /****
       
 18597  *DINT_TO_SINT
       
 18598  */
       
 18599     case function_dint_to_sint :
       
 18600     {
       
 18601         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18602 
       
 18603         {
       
 18604             symbol_c *IN_type_symbol = param_data_type;
       
 18605             last_type_symbol = IN_type_symbol;
       
 18606             
       
 18607             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18608             {
       
 18609         
       
 18610                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 18611                 return return_type_symbol;
       
 18612                 
       
 18613             }
       
 18614             
       
 18615             
       
 18616             ERROR;
       
 18617         }
       
 18618         
       
 18619     }/*function_dint_to_sint*/
       
 18620     break;
       
 18621 
       
 18622 /****
       
 18623  *DINT_TO_LINT
       
 18624  */
       
 18625     case function_dint_to_lint :
       
 18626     {
       
 18627         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18628 
       
 18629         {
       
 18630             symbol_c *IN_type_symbol = param_data_type;
       
 18631             last_type_symbol = IN_type_symbol;
       
 18632             
       
 18633             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18634             {
       
 18635         
       
 18636                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 18637                 return return_type_symbol;
       
 18638                 
       
 18639             }
       
 18640             
       
 18641             
       
 18642             ERROR;
       
 18643         }
       
 18644         
       
 18645     }/*function_dint_to_lint*/
       
 18646     break;
       
 18647 
       
 18648 /****
       
 18649  *DINT_TO_DATE
       
 18650  */
       
 18651     case function_dint_to_date :
       
 18652     {
       
 18653         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18654 
       
 18655         {
       
 18656             symbol_c *IN_type_symbol = param_data_type;
       
 18657             last_type_symbol = IN_type_symbol;
       
 18658             
       
 18659             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18660             {
       
 18661         
       
 18662                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 18663                 return return_type_symbol;
       
 18664                 
       
 18665             }
       
 18666             
       
 18667             
       
 18668             ERROR;
       
 18669         }
       
 18670         
       
 18671     }/*function_dint_to_date*/
       
 18672     break;
       
 18673 
       
 18674 /****
       
 18675  *DINT_TO_DWORD
       
 18676  */
       
 18677     case function_dint_to_dword :
       
 18678     {
       
 18679         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18680 
       
 18681         {
       
 18682             symbol_c *IN_type_symbol = param_data_type;
       
 18683             last_type_symbol = IN_type_symbol;
       
 18684             
       
 18685             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18686             {
       
 18687         
       
 18688                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 18689                 return return_type_symbol;
       
 18690                 
       
 18691             }
       
 18692             
       
 18693             
       
 18694             ERROR;
       
 18695         }
       
 18696         
       
 18697     }/*function_dint_to_dword*/
       
 18698     break;
       
 18699 
       
 18700 /****
       
 18701  *DINT_TO_DT
       
 18702  */
       
 18703     case function_dint_to_dt :
       
 18704     {
       
 18705         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18706 
       
 18707         {
       
 18708             symbol_c *IN_type_symbol = param_data_type;
       
 18709             last_type_symbol = IN_type_symbol;
       
 18710             
       
 18711             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18712             {
       
 18713         
       
 18714                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 18715                 return return_type_symbol;
       
 18716                 
       
 18717             }
       
 18718             
       
 18719             
       
 18720             ERROR;
       
 18721         }
       
 18722         
       
 18723     }/*function_dint_to_dt*/
       
 18724     break;
       
 18725 
       
 18726 /****
       
 18727  *DINT_TO_TOD
       
 18728  */
       
 18729     case function_dint_to_tod :
       
 18730     {
       
 18731         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18732 
       
 18733         {
       
 18734             symbol_c *IN_type_symbol = param_data_type;
       
 18735             last_type_symbol = IN_type_symbol;
       
 18736             
       
 18737             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18738             {
       
 18739         
       
 18740                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 18741                 return return_type_symbol;
       
 18742                 
       
 18743             }
       
 18744             
       
 18745             
       
 18746             ERROR;
       
 18747         }
       
 18748         
       
 18749     }/*function_dint_to_tod*/
       
 18750     break;
       
 18751 
       
 18752 /****
       
 18753  *DINT_TO_UDINT
       
 18754  */
       
 18755     case function_dint_to_udint :
       
 18756     {
       
 18757         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18758 
       
 18759         {
       
 18760             symbol_c *IN_type_symbol = param_data_type;
       
 18761             last_type_symbol = IN_type_symbol;
       
 18762             
       
 18763             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18764             {
       
 18765         
       
 18766                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 18767                 return return_type_symbol;
       
 18768                 
       
 18769             }
       
 18770             
       
 18771             
       
 18772             ERROR;
       
 18773         }
       
 18774         
       
 18775     }/*function_dint_to_udint*/
       
 18776     break;
       
 18777 
       
 18778 /****
       
 18779  *DINT_TO_WORD
       
 18780  */
       
 18781     case function_dint_to_word :
       
 18782     {
       
 18783         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18784 
       
 18785         {
       
 18786             symbol_c *IN_type_symbol = param_data_type;
       
 18787             last_type_symbol = IN_type_symbol;
       
 18788             
       
 18789             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18790             {
       
 18791         
       
 18792                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 18793                 return return_type_symbol;
       
 18794                 
       
 18795             }
       
 18796             
       
 18797             
       
 18798             ERROR;
       
 18799         }
       
 18800         
       
 18801     }/*function_dint_to_word*/
       
 18802     break;
       
 18803 
       
 18804 /****
       
 18805  *DINT_TO_STRING
       
 18806  */
       
 18807     case function_dint_to_string :
       
 18808     {
       
 18809         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18810 
       
 18811         {
       
 18812             symbol_c *IN_type_symbol = param_data_type;
       
 18813             last_type_symbol = IN_type_symbol;
       
 18814             
       
 18815             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18816             {
       
 18817         
       
 18818                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 18819                 return return_type_symbol;
       
 18820                 
       
 18821             }
       
 18822             
       
 18823             
       
 18824             ERROR;
       
 18825         }
       
 18826         
       
 18827     }/*function_dint_to_string*/
       
 18828     break;
       
 18829 
       
 18830 /****
       
 18831  *DINT_TO_LWORD
       
 18832  */
       
 18833     case function_dint_to_lword :
       
 18834     {
       
 18835         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18836 
       
 18837         {
       
 18838             symbol_c *IN_type_symbol = param_data_type;
       
 18839             last_type_symbol = IN_type_symbol;
       
 18840             
       
 18841             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18842             {
       
 18843         
       
 18844                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 18845                 return return_type_symbol;
       
 18846                 
       
 18847             }
       
 18848             
       
 18849             
       
 18850             ERROR;
       
 18851         }
       
 18852         
       
 18853     }/*function_dint_to_lword*/
       
 18854     break;
       
 18855 
       
 18856 /****
       
 18857  *DINT_TO_UINT
       
 18858  */
       
 18859     case function_dint_to_uint :
       
 18860     {
       
 18861         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18862 
       
 18863         {
       
 18864             symbol_c *IN_type_symbol = param_data_type;
       
 18865             last_type_symbol = IN_type_symbol;
       
 18866             
       
 18867             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18868             {
       
 18869         
       
 18870                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 18871                 return return_type_symbol;
       
 18872                 
       
 18873             }
       
 18874             
       
 18875             
       
 18876             ERROR;
       
 18877         }
       
 18878         
       
 18879     }/*function_dint_to_uint*/
       
 18880     break;
       
 18881 
       
 18882 /****
       
 18883  *DINT_TO_LREAL
       
 18884  */
       
 18885     case function_dint_to_lreal :
       
 18886     {
       
 18887         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18888 
       
 18889         {
       
 18890             symbol_c *IN_type_symbol = param_data_type;
       
 18891             last_type_symbol = IN_type_symbol;
       
 18892             
       
 18893             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18894             {
       
 18895         
       
 18896                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 18897                 return return_type_symbol;
       
 18898                 
       
 18899             }
       
 18900             
       
 18901             
       
 18902             ERROR;
       
 18903         }
       
 18904         
       
 18905     }/*function_dint_to_lreal*/
       
 18906     break;
       
 18907 
       
 18908 /****
       
 18909  *DINT_TO_BYTE
       
 18910  */
       
 18911     case function_dint_to_byte :
       
 18912     {
       
 18913         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18914 
       
 18915         {
       
 18916             symbol_c *IN_type_symbol = param_data_type;
       
 18917             last_type_symbol = IN_type_symbol;
       
 18918             
       
 18919             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18920             {
       
 18921         
       
 18922                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 18923                 return return_type_symbol;
       
 18924                 
       
 18925             }
       
 18926             
       
 18927             
       
 18928             ERROR;
       
 18929         }
       
 18930         
       
 18931     }/*function_dint_to_byte*/
       
 18932     break;
       
 18933 
       
 18934 /****
       
 18935  *DINT_TO_USINT
       
 18936  */
       
 18937     case function_dint_to_usint :
       
 18938     {
       
 18939         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18940 
       
 18941         {
       
 18942             symbol_c *IN_type_symbol = param_data_type;
       
 18943             last_type_symbol = IN_type_symbol;
       
 18944             
       
 18945             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18946             {
       
 18947         
       
 18948                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 18949                 return return_type_symbol;
       
 18950                 
       
 18951             }
       
 18952             
       
 18953             
       
 18954             ERROR;
       
 18955         }
       
 18956         
       
 18957     }/*function_dint_to_usint*/
       
 18958     break;
       
 18959 
       
 18960 /****
       
 18961  *DINT_TO_ULINT
       
 18962  */
       
 18963     case function_dint_to_ulint :
       
 18964     {
       
 18965         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18966 
       
 18967         {
       
 18968             symbol_c *IN_type_symbol = param_data_type;
       
 18969             last_type_symbol = IN_type_symbol;
       
 18970             
       
 18971             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18972             {
       
 18973         
       
 18974                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 18975                 return return_type_symbol;
       
 18976                 
       
 18977             }
       
 18978             
       
 18979             
       
 18980             ERROR;
       
 18981         }
       
 18982         
       
 18983     }/*function_dint_to_ulint*/
       
 18984     break;
       
 18985 
       
 18986 /****
       
 18987  *DINT_TO_BOOL
       
 18988  */
       
 18989     case function_dint_to_bool :
       
 18990     {
       
 18991         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 18992 
       
 18993         {
       
 18994             symbol_c *IN_type_symbol = param_data_type;
       
 18995             last_type_symbol = IN_type_symbol;
       
 18996             
       
 18997             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 18998             {
       
 18999         
       
 19000                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 19001                 return return_type_symbol;
       
 19002                 
       
 19003             }
       
 19004             
       
 19005             
       
 19006             ERROR;
       
 19007         }
       
 19008         
       
 19009     }/*function_dint_to_bool*/
       
 19010     break;
       
 19011 
       
 19012 /****
       
 19013  *DINT_TO_TIME
       
 19014  */
       
 19015     case function_dint_to_time :
       
 19016     {
       
 19017         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 19018 
       
 19019         {
       
 19020             symbol_c *IN_type_symbol = param_data_type;
       
 19021             last_type_symbol = IN_type_symbol;
       
 19022             
       
 19023             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 19024             {
       
 19025         
       
 19026                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 19027                 return return_type_symbol;
       
 19028                 
       
 19029             }
       
 19030             
       
 19031             
       
 19032             ERROR;
       
 19033         }
       
 19034         
       
 19035     }/*function_dint_to_time*/
       
 19036     break;
       
 19037 
       
 19038 /****
       
 19039  *DINT_TO_INT
       
 19040  */
       
 19041     case function_dint_to_int :
       
 19042     {
       
 19043         symbol_c *last_type_symbol = &search_constant_type_c::dint_type_name;
       
 19044 
       
 19045         {
       
 19046             symbol_c *IN_type_symbol = param_data_type;
       
 19047             last_type_symbol = IN_type_symbol;
       
 19048             
       
 19049             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
       
 19050             {
       
 19051         
       
 19052                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 19053                 return return_type_symbol;
       
 19054                 
       
 19055             }
       
 19056             
       
 19057             
       
 19058             ERROR;
       
 19059         }
       
 19060         
       
 19061     }/*function_dint_to_int*/
       
 19062     break;
       
 19063 
       
 19064 /****
       
 19065  *DATE_TO_REAL
       
 19066  */
       
 19067     case function_date_to_real :
       
 19068     {
       
 19069         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19070 
       
 19071         {
       
 19072             symbol_c *IN_type_symbol = param_data_type;
       
 19073             last_type_symbol = IN_type_symbol;
       
 19074             
       
 19075             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19076             {
       
 19077         
       
 19078                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 19079                 return return_type_symbol;
       
 19080                 
       
 19081             }
       
 19082             
       
 19083             
       
 19084             ERROR;
       
 19085         }
       
 19086         
       
 19087     }/*function_date_to_real*/
       
 19088     break;
       
 19089 
       
 19090 /****
       
 19091  *DATE_TO_SINT
       
 19092  */
       
 19093     case function_date_to_sint :
       
 19094     {
       
 19095         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19096 
       
 19097         {
       
 19098             symbol_c *IN_type_symbol = param_data_type;
       
 19099             last_type_symbol = IN_type_symbol;
       
 19100             
       
 19101             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19102             {
       
 19103         
       
 19104                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 19105                 return return_type_symbol;
       
 19106                 
       
 19107             }
       
 19108             
       
 19109             
       
 19110             ERROR;
       
 19111         }
       
 19112         
       
 19113     }/*function_date_to_sint*/
       
 19114     break;
       
 19115 
       
 19116 /****
       
 19117  *DATE_TO_LINT
       
 19118  */
       
 19119     case function_date_to_lint :
       
 19120     {
       
 19121         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19122 
       
 19123         {
       
 19124             symbol_c *IN_type_symbol = param_data_type;
       
 19125             last_type_symbol = IN_type_symbol;
       
 19126             
       
 19127             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19128             {
       
 19129         
       
 19130                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 19131                 return return_type_symbol;
       
 19132                 
       
 19133             }
       
 19134             
       
 19135             
       
 19136             ERROR;
       
 19137         }
       
 19138         
       
 19139     }/*function_date_to_lint*/
       
 19140     break;
       
 19141 
       
 19142 /****
       
 19143  *DATE_TO_DINT
       
 19144  */
       
 19145     case function_date_to_dint :
       
 19146     {
       
 19147         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19148 
       
 19149         {
       
 19150             symbol_c *IN_type_symbol = param_data_type;
       
 19151             last_type_symbol = IN_type_symbol;
       
 19152             
       
 19153             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19154             {
       
 19155         
       
 19156                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 19157                 return return_type_symbol;
       
 19158                 
       
 19159             }
       
 19160             
       
 19161             
       
 19162             ERROR;
       
 19163         }
       
 19164         
       
 19165     }/*function_date_to_dint*/
       
 19166     break;
       
 19167 
       
 19168 /****
       
 19169  *DATE_TO_DWORD
       
 19170  */
       
 19171     case function_date_to_dword :
       
 19172     {
       
 19173         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19174 
       
 19175         {
       
 19176             symbol_c *IN_type_symbol = param_data_type;
       
 19177             last_type_symbol = IN_type_symbol;
       
 19178             
       
 19179             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19180             {
       
 19181         
       
 19182                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 19183                 return return_type_symbol;
       
 19184                 
       
 19185             }
       
 19186             
       
 19187             
       
 19188             ERROR;
       
 19189         }
       
 19190         
       
 19191     }/*function_date_to_dword*/
       
 19192     break;
       
 19193 
       
 19194 /****
       
 19195  *DATE_TO_UDINT
       
 19196  */
       
 19197     case function_date_to_udint :
       
 19198     {
       
 19199         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19200 
       
 19201         {
       
 19202             symbol_c *IN_type_symbol = param_data_type;
       
 19203             last_type_symbol = IN_type_symbol;
       
 19204             
       
 19205             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19206             {
       
 19207         
       
 19208                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 19209                 return return_type_symbol;
       
 19210                 
       
 19211             }
       
 19212             
       
 19213             
       
 19214             ERROR;
       
 19215         }
       
 19216         
       
 19217     }/*function_date_to_udint*/
       
 19218     break;
       
 19219 
       
 19220 /****
       
 19221  *DATE_TO_WORD
       
 19222  */
       
 19223     case function_date_to_word :
       
 19224     {
       
 19225         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19226 
       
 19227         {
       
 19228             symbol_c *IN_type_symbol = param_data_type;
       
 19229             last_type_symbol = IN_type_symbol;
       
 19230             
       
 19231             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19232             {
       
 19233         
       
 19234                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 19235                 return return_type_symbol;
       
 19236                 
       
 19237             }
       
 19238             
       
 19239             
       
 19240             ERROR;
       
 19241         }
       
 19242         
       
 19243     }/*function_date_to_word*/
       
 19244     break;
       
 19245 
       
 19246 /****
       
 19247  *DATE_TO_STRING
       
 19248  */
       
 19249     case function_date_to_string :
       
 19250     {
       
 19251         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19252 
       
 19253         {
       
 19254             symbol_c *IN_type_symbol = param_data_type;
       
 19255             last_type_symbol = IN_type_symbol;
       
 19256             
       
 19257             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19258             {
       
 19259         
       
 19260                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 19261                 return return_type_symbol;
       
 19262                 
       
 19263             }
       
 19264             
       
 19265             
       
 19266             ERROR;
       
 19267         }
       
 19268         
       
 19269     }/*function_date_to_string*/
       
 19270     break;
       
 19271 
       
 19272 /****
       
 19273  *DATE_TO_LWORD
       
 19274  */
       
 19275     case function_date_to_lword :
       
 19276     {
       
 19277         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19278 
       
 19279         {
       
 19280             symbol_c *IN_type_symbol = param_data_type;
       
 19281             last_type_symbol = IN_type_symbol;
       
 19282             
       
 19283             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19284             {
       
 19285         
       
 19286                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 19287                 return return_type_symbol;
       
 19288                 
       
 19289             }
       
 19290             
       
 19291             
       
 19292             ERROR;
       
 19293         }
       
 19294         
       
 19295     }/*function_date_to_lword*/
       
 19296     break;
       
 19297 
       
 19298 /****
       
 19299  *DATE_TO_UINT
       
 19300  */
       
 19301     case function_date_to_uint :
       
 19302     {
       
 19303         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19304 
       
 19305         {
       
 19306             symbol_c *IN_type_symbol = param_data_type;
       
 19307             last_type_symbol = IN_type_symbol;
       
 19308             
       
 19309             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19310             {
       
 19311         
       
 19312                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 19313                 return return_type_symbol;
       
 19314                 
       
 19315             }
       
 19316             
       
 19317             
       
 19318             ERROR;
       
 19319         }
       
 19320         
       
 19321     }/*function_date_to_uint*/
       
 19322     break;
       
 19323 
       
 19324 /****
       
 19325  *DATE_TO_LREAL
       
 19326  */
       
 19327     case function_date_to_lreal :
       
 19328     {
       
 19329         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19330 
       
 19331         {
       
 19332             symbol_c *IN_type_symbol = param_data_type;
       
 19333             last_type_symbol = IN_type_symbol;
       
 19334             
       
 19335             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19336             {
       
 19337         
       
 19338                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 19339                 return return_type_symbol;
       
 19340                 
       
 19341             }
       
 19342             
       
 19343             
       
 19344             ERROR;
       
 19345         }
       
 19346         
       
 19347     }/*function_date_to_lreal*/
       
 19348     break;
       
 19349 
       
 19350 /****
       
 19351  *DATE_TO_BYTE
       
 19352  */
       
 19353     case function_date_to_byte :
       
 19354     {
       
 19355         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19356 
       
 19357         {
       
 19358             symbol_c *IN_type_symbol = param_data_type;
       
 19359             last_type_symbol = IN_type_symbol;
       
 19360             
       
 19361             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19362             {
       
 19363         
       
 19364                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 19365                 return return_type_symbol;
       
 19366                 
       
 19367             }
       
 19368             
       
 19369             
       
 19370             ERROR;
       
 19371         }
       
 19372         
       
 19373     }/*function_date_to_byte*/
       
 19374     break;
       
 19375 
       
 19376 /****
       
 19377  *DATE_TO_USINT
       
 19378  */
       
 19379     case function_date_to_usint :
       
 19380     {
       
 19381         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19382 
       
 19383         {
       
 19384             symbol_c *IN_type_symbol = param_data_type;
       
 19385             last_type_symbol = IN_type_symbol;
       
 19386             
       
 19387             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19388             {
       
 19389         
       
 19390                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 19391                 return return_type_symbol;
       
 19392                 
       
 19393             }
       
 19394             
       
 19395             
       
 19396             ERROR;
       
 19397         }
       
 19398         
       
 19399     }/*function_date_to_usint*/
       
 19400     break;
       
 19401 
       
 19402 /****
       
 19403  *DATE_TO_ULINT
       
 19404  */
       
 19405     case function_date_to_ulint :
       
 19406     {
       
 19407         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19408 
       
 19409         {
       
 19410             symbol_c *IN_type_symbol = param_data_type;
       
 19411             last_type_symbol = IN_type_symbol;
       
 19412             
       
 19413             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19414             {
       
 19415         
       
 19416                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 19417                 return return_type_symbol;
       
 19418                 
       
 19419             }
       
 19420             
       
 19421             
       
 19422             ERROR;
       
 19423         }
       
 19424         
       
 19425     }/*function_date_to_ulint*/
       
 19426     break;
       
 19427 
       
 19428 /****
       
 19429  *DATE_TO_INT
       
 19430  */
       
 19431     case function_date_to_int :
       
 19432     {
       
 19433         symbol_c *last_type_symbol = &search_constant_type_c::date_type_name;
       
 19434 
       
 19435         {
       
 19436             symbol_c *IN_type_symbol = param_data_type;
       
 19437             last_type_symbol = IN_type_symbol;
       
 19438             
       
 19439             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 19440             {
       
 19441         
       
 19442                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 19443                 return return_type_symbol;
       
 19444                 
       
 19445             }
       
 19446             
       
 19447             
       
 19448             ERROR;
       
 19449         }
       
 19450         
       
 19451     }/*function_date_to_int*/
       
 19452     break;
       
 19453 
       
 19454 /****
       
 19455  *DWORD_TO_REAL
       
 19456  */
       
 19457     case function_dword_to_real :
       
 19458     {
       
 19459         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19460 
       
 19461         {
       
 19462             symbol_c *IN_type_symbol = param_data_type;
       
 19463             last_type_symbol = IN_type_symbol;
       
 19464             
       
 19465             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19466             {
       
 19467         
       
 19468                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 19469                 return return_type_symbol;
       
 19470                 
       
 19471             }
       
 19472             
       
 19473             
       
 19474             ERROR;
       
 19475         }
       
 19476         
       
 19477     }/*function_dword_to_real*/
       
 19478     break;
       
 19479 
       
 19480 /****
       
 19481  *DWORD_TO_SINT
       
 19482  */
       
 19483     case function_dword_to_sint :
       
 19484     {
       
 19485         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19486 
       
 19487         {
       
 19488             symbol_c *IN_type_symbol = param_data_type;
       
 19489             last_type_symbol = IN_type_symbol;
       
 19490             
       
 19491             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19492             {
       
 19493         
       
 19494                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 19495                 return return_type_symbol;
       
 19496                 
       
 19497             }
       
 19498             
       
 19499             
       
 19500             ERROR;
       
 19501         }
       
 19502         
       
 19503     }/*function_dword_to_sint*/
       
 19504     break;
       
 19505 
       
 19506 /****
       
 19507  *DWORD_TO_LINT
       
 19508  */
       
 19509     case function_dword_to_lint :
       
 19510     {
       
 19511         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19512 
       
 19513         {
       
 19514             symbol_c *IN_type_symbol = param_data_type;
       
 19515             last_type_symbol = IN_type_symbol;
       
 19516             
       
 19517             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19518             {
       
 19519         
       
 19520                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 19521                 return return_type_symbol;
       
 19522                 
       
 19523             }
       
 19524             
       
 19525             
       
 19526             ERROR;
       
 19527         }
       
 19528         
       
 19529     }/*function_dword_to_lint*/
       
 19530     break;
       
 19531 
       
 19532 /****
       
 19533  *DWORD_TO_DINT
       
 19534  */
       
 19535     case function_dword_to_dint :
       
 19536     {
       
 19537         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19538 
       
 19539         {
       
 19540             symbol_c *IN_type_symbol = param_data_type;
       
 19541             last_type_symbol = IN_type_symbol;
       
 19542             
       
 19543             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19544             {
       
 19545         
       
 19546                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 19547                 return return_type_symbol;
       
 19548                 
       
 19549             }
       
 19550             
       
 19551             
       
 19552             ERROR;
       
 19553         }
       
 19554         
       
 19555     }/*function_dword_to_dint*/
       
 19556     break;
       
 19557 
       
 19558 /****
       
 19559  *DWORD_TO_DATE
       
 19560  */
       
 19561     case function_dword_to_date :
       
 19562     {
       
 19563         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19564 
       
 19565         {
       
 19566             symbol_c *IN_type_symbol = param_data_type;
       
 19567             last_type_symbol = IN_type_symbol;
       
 19568             
       
 19569             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19570             {
       
 19571         
       
 19572                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 19573                 return return_type_symbol;
       
 19574                 
       
 19575             }
       
 19576             
       
 19577             
       
 19578             ERROR;
       
 19579         }
       
 19580         
       
 19581     }/*function_dword_to_date*/
       
 19582     break;
       
 19583 
       
 19584 /****
       
 19585  *DWORD_TO_DT
       
 19586  */
       
 19587     case function_dword_to_dt :
       
 19588     {
       
 19589         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19590 
       
 19591         {
       
 19592             symbol_c *IN_type_symbol = param_data_type;
       
 19593             last_type_symbol = IN_type_symbol;
       
 19594             
       
 19595             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19596             {
       
 19597         
       
 19598                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 19599                 return return_type_symbol;
       
 19600                 
       
 19601             }
       
 19602             
       
 19603             
       
 19604             ERROR;
       
 19605         }
       
 19606         
       
 19607     }/*function_dword_to_dt*/
       
 19608     break;
       
 19609 
       
 19610 /****
       
 19611  *DWORD_TO_TOD
       
 19612  */
       
 19613     case function_dword_to_tod :
       
 19614     {
       
 19615         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19616 
       
 19617         {
       
 19618             symbol_c *IN_type_symbol = param_data_type;
       
 19619             last_type_symbol = IN_type_symbol;
       
 19620             
       
 19621             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19622             {
       
 19623         
       
 19624                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 19625                 return return_type_symbol;
       
 19626                 
       
 19627             }
       
 19628             
       
 19629             
       
 19630             ERROR;
       
 19631         }
       
 19632         
       
 19633     }/*function_dword_to_tod*/
       
 19634     break;
       
 19635 
       
 19636 /****
       
 19637  *DWORD_TO_UDINT
       
 19638  */
       
 19639     case function_dword_to_udint :
       
 19640     {
       
 19641         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19642 
       
 19643         {
       
 19644             symbol_c *IN_type_symbol = param_data_type;
       
 19645             last_type_symbol = IN_type_symbol;
       
 19646             
       
 19647             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19648             {
       
 19649         
       
 19650                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 19651                 return return_type_symbol;
       
 19652                 
       
 19653             }
       
 19654             
       
 19655             
       
 19656             ERROR;
       
 19657         }
       
 19658         
       
 19659     }/*function_dword_to_udint*/
       
 19660     break;
       
 19661 
       
 19662 /****
       
 19663  *DWORD_TO_WORD
       
 19664  */
       
 19665     case function_dword_to_word :
       
 19666     {
       
 19667         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19668 
       
 19669         {
       
 19670             symbol_c *IN_type_symbol = param_data_type;
       
 19671             last_type_symbol = IN_type_symbol;
       
 19672             
       
 19673             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19674             {
       
 19675         
       
 19676                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 19677                 return return_type_symbol;
       
 19678                 
       
 19679             }
       
 19680             
       
 19681             
       
 19682             ERROR;
       
 19683         }
       
 19684         
       
 19685     }/*function_dword_to_word*/
       
 19686     break;
       
 19687 
       
 19688 /****
       
 19689  *DWORD_TO_STRING
       
 19690  */
       
 19691     case function_dword_to_string :
       
 19692     {
       
 19693         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19694 
       
 19695         {
       
 19696             symbol_c *IN_type_symbol = param_data_type;
       
 19697             last_type_symbol = IN_type_symbol;
       
 19698             
       
 19699             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19700             {
       
 19701         
       
 19702                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 19703                 return return_type_symbol;
       
 19704                 
       
 19705             }
       
 19706             
       
 19707             
       
 19708             ERROR;
       
 19709         }
       
 19710         
       
 19711     }/*function_dword_to_string*/
       
 19712     break;
       
 19713 
       
 19714 /****
       
 19715  *DWORD_TO_LWORD
       
 19716  */
       
 19717     case function_dword_to_lword :
       
 19718     {
       
 19719         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19720 
       
 19721         {
       
 19722             symbol_c *IN_type_symbol = param_data_type;
       
 19723             last_type_symbol = IN_type_symbol;
       
 19724             
       
 19725             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19726             {
       
 19727         
       
 19728                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 19729                 return return_type_symbol;
       
 19730                 
       
 19731             }
       
 19732             
       
 19733             
       
 19734             ERROR;
       
 19735         }
       
 19736         
       
 19737     }/*function_dword_to_lword*/
       
 19738     break;
       
 19739 
       
 19740 /****
       
 19741  *DWORD_TO_UINT
       
 19742  */
       
 19743     case function_dword_to_uint :
       
 19744     {
       
 19745         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19746 
       
 19747         {
       
 19748             symbol_c *IN_type_symbol = param_data_type;
       
 19749             last_type_symbol = IN_type_symbol;
       
 19750             
       
 19751             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19752             {
       
 19753         
       
 19754                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 19755                 return return_type_symbol;
       
 19756                 
       
 19757             }
       
 19758             
       
 19759             
       
 19760             ERROR;
       
 19761         }
       
 19762         
       
 19763     }/*function_dword_to_uint*/
       
 19764     break;
       
 19765 
       
 19766 /****
       
 19767  *DWORD_TO_LREAL
       
 19768  */
       
 19769     case function_dword_to_lreal :
       
 19770     {
       
 19771         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19772 
       
 19773         {
       
 19774             symbol_c *IN_type_symbol = param_data_type;
       
 19775             last_type_symbol = IN_type_symbol;
       
 19776             
       
 19777             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19778             {
       
 19779         
       
 19780                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 19781                 return return_type_symbol;
       
 19782                 
       
 19783             }
       
 19784             
       
 19785             
       
 19786             ERROR;
       
 19787         }
       
 19788         
       
 19789     }/*function_dword_to_lreal*/
       
 19790     break;
       
 19791 
       
 19792 /****
       
 19793  *DWORD_TO_BYTE
       
 19794  */
       
 19795     case function_dword_to_byte :
       
 19796     {
       
 19797         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19798 
       
 19799         {
       
 19800             symbol_c *IN_type_symbol = param_data_type;
       
 19801             last_type_symbol = IN_type_symbol;
       
 19802             
       
 19803             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19804             {
       
 19805         
       
 19806                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 19807                 return return_type_symbol;
       
 19808                 
       
 19809             }
       
 19810             
       
 19811             
       
 19812             ERROR;
       
 19813         }
       
 19814         
       
 19815     }/*function_dword_to_byte*/
       
 19816     break;
       
 19817 
       
 19818 /****
       
 19819  *DWORD_TO_USINT
       
 19820  */
       
 19821     case function_dword_to_usint :
       
 19822     {
       
 19823         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19824 
       
 19825         {
       
 19826             symbol_c *IN_type_symbol = param_data_type;
       
 19827             last_type_symbol = IN_type_symbol;
       
 19828             
       
 19829             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19830             {
       
 19831         
       
 19832                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 19833                 return return_type_symbol;
       
 19834                 
       
 19835             }
       
 19836             
       
 19837             
       
 19838             ERROR;
       
 19839         }
       
 19840         
       
 19841     }/*function_dword_to_usint*/
       
 19842     break;
       
 19843 
       
 19844 /****
       
 19845  *DWORD_TO_ULINT
       
 19846  */
       
 19847     case function_dword_to_ulint :
       
 19848     {
       
 19849         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19850 
       
 19851         {
       
 19852             symbol_c *IN_type_symbol = param_data_type;
       
 19853             last_type_symbol = IN_type_symbol;
       
 19854             
       
 19855             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19856             {
       
 19857         
       
 19858                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 19859                 return return_type_symbol;
       
 19860                 
       
 19861             }
       
 19862             
       
 19863             
       
 19864             ERROR;
       
 19865         }
       
 19866         
       
 19867     }/*function_dword_to_ulint*/
       
 19868     break;
       
 19869 
       
 19870 /****
       
 19871  *DWORD_TO_BOOL
       
 19872  */
       
 19873     case function_dword_to_bool :
       
 19874     {
       
 19875         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19876 
       
 19877         {
       
 19878             symbol_c *IN_type_symbol = param_data_type;
       
 19879             last_type_symbol = IN_type_symbol;
       
 19880             
       
 19881             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19882             {
       
 19883         
       
 19884                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 19885                 return return_type_symbol;
       
 19886                 
       
 19887             }
       
 19888             
       
 19889             
       
 19890             ERROR;
       
 19891         }
       
 19892         
       
 19893     }/*function_dword_to_bool*/
       
 19894     break;
       
 19895 
       
 19896 /****
       
 19897  *DWORD_TO_TIME
       
 19898  */
       
 19899     case function_dword_to_time :
       
 19900     {
       
 19901         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19902 
       
 19903         {
       
 19904             symbol_c *IN_type_symbol = param_data_type;
       
 19905             last_type_symbol = IN_type_symbol;
       
 19906             
       
 19907             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19908             {
       
 19909         
       
 19910                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 19911                 return return_type_symbol;
       
 19912                 
       
 19913             }
       
 19914             
       
 19915             
       
 19916             ERROR;
       
 19917         }
       
 19918         
       
 19919     }/*function_dword_to_time*/
       
 19920     break;
       
 19921 
       
 19922 /****
       
 19923  *DWORD_TO_INT
       
 19924  */
       
 19925     case function_dword_to_int :
       
 19926     {
       
 19927         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 19928 
       
 19929         {
       
 19930             symbol_c *IN_type_symbol = param_data_type;
       
 19931             last_type_symbol = IN_type_symbol;
       
 19932             
       
 19933             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 19934             {
       
 19935         
       
 19936                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 19937                 return return_type_symbol;
       
 19938                 
       
 19939             }
       
 19940             
       
 19941             
       
 19942             ERROR;
       
 19943         }
       
 19944         
       
 19945     }/*function_dword_to_int*/
       
 19946     break;
       
 19947 
       
 19948 /****
       
 19949  *DT_TO_REAL
       
 19950  */
       
 19951     case function_dt_to_real :
       
 19952     {
       
 19953         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 19954 
       
 19955         {
       
 19956             symbol_c *IN_type_symbol = param_data_type;
       
 19957             last_type_symbol = IN_type_symbol;
       
 19958             
       
 19959             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 19960             {
       
 19961         
       
 19962                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 19963                 return return_type_symbol;
       
 19964                 
       
 19965             }
       
 19966             
       
 19967             
       
 19968             ERROR;
       
 19969         }
       
 19970         
       
 19971     }/*function_dt_to_real*/
       
 19972     break;
       
 19973 
       
 19974 /****
       
 19975  *DT_TO_SINT
       
 19976  */
       
 19977     case function_dt_to_sint :
       
 19978     {
       
 19979         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 19980 
       
 19981         {
       
 19982             symbol_c *IN_type_symbol = param_data_type;
       
 19983             last_type_symbol = IN_type_symbol;
       
 19984             
       
 19985             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 19986             {
       
 19987         
       
 19988                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 19989                 return return_type_symbol;
       
 19990                 
       
 19991             }
       
 19992             
       
 19993             
       
 19994             ERROR;
       
 19995         }
       
 19996         
       
 19997     }/*function_dt_to_sint*/
       
 19998     break;
       
 19999 
       
 20000 /****
       
 20001  *DT_TO_LINT
       
 20002  */
       
 20003     case function_dt_to_lint :
       
 20004     {
       
 20005         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20006 
       
 20007         {
       
 20008             symbol_c *IN_type_symbol = param_data_type;
       
 20009             last_type_symbol = IN_type_symbol;
       
 20010             
       
 20011             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20012             {
       
 20013         
       
 20014                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 20015                 return return_type_symbol;
       
 20016                 
       
 20017             }
       
 20018             
       
 20019             
       
 20020             ERROR;
       
 20021         }
       
 20022         
       
 20023     }/*function_dt_to_lint*/
       
 20024     break;
       
 20025 
       
 20026 /****
       
 20027  *DT_TO_DINT
       
 20028  */
       
 20029     case function_dt_to_dint :
       
 20030     {
       
 20031         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20032 
       
 20033         {
       
 20034             symbol_c *IN_type_symbol = param_data_type;
       
 20035             last_type_symbol = IN_type_symbol;
       
 20036             
       
 20037             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20038             {
       
 20039         
       
 20040                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 20041                 return return_type_symbol;
       
 20042                 
       
 20043             }
       
 20044             
       
 20045             
       
 20046             ERROR;
       
 20047         }
       
 20048         
       
 20049     }/*function_dt_to_dint*/
       
 20050     break;
       
 20051 
       
 20052 /****
       
 20053  *DT_TO_DWORD
       
 20054  */
       
 20055     case function_dt_to_dword :
       
 20056     {
       
 20057         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20058 
       
 20059         {
       
 20060             symbol_c *IN_type_symbol = param_data_type;
       
 20061             last_type_symbol = IN_type_symbol;
       
 20062             
       
 20063             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20064             {
       
 20065         
       
 20066                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 20067                 return return_type_symbol;
       
 20068                 
       
 20069             }
       
 20070             
       
 20071             
       
 20072             ERROR;
       
 20073         }
       
 20074         
       
 20075     }/*function_dt_to_dword*/
       
 20076     break;
       
 20077 
       
 20078 /****
       
 20079  *DT_TO_UDINT
       
 20080  */
       
 20081     case function_dt_to_udint :
       
 20082     {
       
 20083         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20084 
       
 20085         {
       
 20086             symbol_c *IN_type_symbol = param_data_type;
       
 20087             last_type_symbol = IN_type_symbol;
       
 20088             
       
 20089             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20090             {
       
 20091         
       
 20092                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 20093                 return return_type_symbol;
       
 20094                 
       
 20095             }
       
 20096             
       
 20097             
       
 20098             ERROR;
       
 20099         }
       
 20100         
       
 20101     }/*function_dt_to_udint*/
       
 20102     break;
       
 20103 
       
 20104 /****
       
 20105  *DT_TO_WORD
       
 20106  */
       
 20107     case function_dt_to_word :
       
 20108     {
       
 20109         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20110 
       
 20111         {
       
 20112             symbol_c *IN_type_symbol = param_data_type;
       
 20113             last_type_symbol = IN_type_symbol;
       
 20114             
       
 20115             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20116             {
       
 20117         
       
 20118                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 20119                 return return_type_symbol;
       
 20120                 
       
 20121             }
       
 20122             
       
 20123             
       
 20124             ERROR;
       
 20125         }
       
 20126         
       
 20127     }/*function_dt_to_word*/
       
 20128     break;
       
 20129 
       
 20130 /****
       
 20131  *DT_TO_STRING
       
 20132  */
       
 20133     case function_dt_to_string :
       
 20134     {
       
 20135         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20136 
       
 20137         {
       
 20138             symbol_c *IN_type_symbol = param_data_type;
       
 20139             last_type_symbol = IN_type_symbol;
       
 20140             
       
 20141             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20142             {
       
 20143         
       
 20144                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 20145                 return return_type_symbol;
       
 20146                 
       
 20147             }
       
 20148             
       
 20149             
       
 20150             ERROR;
       
 20151         }
       
 20152         
       
 20153     }/*function_dt_to_string*/
       
 20154     break;
       
 20155 
       
 20156 /****
       
 20157  *DT_TO_LWORD
       
 20158  */
       
 20159     case function_dt_to_lword :
       
 20160     {
       
 20161         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20162 
       
 20163         {
       
 20164             symbol_c *IN_type_symbol = param_data_type;
       
 20165             last_type_symbol = IN_type_symbol;
       
 20166             
       
 20167             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20168             {
       
 20169         
       
 20170                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 20171                 return return_type_symbol;
       
 20172                 
       
 20173             }
       
 20174             
       
 20175             
       
 20176             ERROR;
       
 20177         }
       
 20178         
       
 20179     }/*function_dt_to_lword*/
       
 20180     break;
       
 20181 
       
 20182 /****
       
 20183  *DT_TO_UINT
       
 20184  */
       
 20185     case function_dt_to_uint :
       
 20186     {
       
 20187         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20188 
       
 20189         {
       
 20190             symbol_c *IN_type_symbol = param_data_type;
       
 20191             last_type_symbol = IN_type_symbol;
       
 20192             
       
 20193             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20194             {
       
 20195         
       
 20196                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 20197                 return return_type_symbol;
       
 20198                 
       
 20199             }
       
 20200             
       
 20201             
       
 20202             ERROR;
       
 20203         }
       
 20204         
       
 20205     }/*function_dt_to_uint*/
       
 20206     break;
       
 20207 
       
 20208 /****
       
 20209  *DT_TO_LREAL
       
 20210  */
       
 20211     case function_dt_to_lreal :
       
 20212     {
       
 20213         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20214 
       
 20215         {
       
 20216             symbol_c *IN_type_symbol = param_data_type;
       
 20217             last_type_symbol = IN_type_symbol;
       
 20218             
       
 20219             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20220             {
       
 20221         
       
 20222                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 20223                 return return_type_symbol;
       
 20224                 
       
 20225             }
       
 20226             
       
 20227             
       
 20228             ERROR;
       
 20229         }
       
 20230         
       
 20231     }/*function_dt_to_lreal*/
       
 20232     break;
       
 20233 
       
 20234 /****
       
 20235  *DT_TO_BYTE
       
 20236  */
       
 20237     case function_dt_to_byte :
       
 20238     {
       
 20239         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20240 
       
 20241         {
       
 20242             symbol_c *IN_type_symbol = param_data_type;
       
 20243             last_type_symbol = IN_type_symbol;
       
 20244             
       
 20245             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20246             {
       
 20247         
       
 20248                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 20249                 return return_type_symbol;
       
 20250                 
       
 20251             }
       
 20252             
       
 20253             
       
 20254             ERROR;
       
 20255         }
       
 20256         
       
 20257     }/*function_dt_to_byte*/
       
 20258     break;
       
 20259 
       
 20260 /****
       
 20261  *DT_TO_USINT
       
 20262  */
       
 20263     case function_dt_to_usint :
       
 20264     {
       
 20265         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20266 
       
 20267         {
       
 20268             symbol_c *IN_type_symbol = param_data_type;
       
 20269             last_type_symbol = IN_type_symbol;
       
 20270             
       
 20271             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20272             {
       
 20273         
       
 20274                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 20275                 return return_type_symbol;
       
 20276                 
       
 20277             }
       
 20278             
       
 20279             
       
 20280             ERROR;
       
 20281         }
       
 20282         
       
 20283     }/*function_dt_to_usint*/
       
 20284     break;
       
 20285 
       
 20286 /****
       
 20287  *DT_TO_ULINT
       
 20288  */
       
 20289     case function_dt_to_ulint :
       
 20290     {
       
 20291         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20292 
       
 20293         {
       
 20294             symbol_c *IN_type_symbol = param_data_type;
       
 20295             last_type_symbol = IN_type_symbol;
       
 20296             
       
 20297             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20298             {
       
 20299         
       
 20300                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 20301                 return return_type_symbol;
       
 20302                 
       
 20303             }
       
 20304             
       
 20305             
       
 20306             ERROR;
       
 20307         }
       
 20308         
       
 20309     }/*function_dt_to_ulint*/
       
 20310     break;
       
 20311 
       
 20312 /****
       
 20313  *DT_TO_INT
       
 20314  */
       
 20315     case function_dt_to_int :
       
 20316     {
       
 20317         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 20318 
       
 20319         {
       
 20320             symbol_c *IN_type_symbol = param_data_type;
       
 20321             last_type_symbol = IN_type_symbol;
       
 20322             
       
 20323             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 20324             {
       
 20325         
       
 20326                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 20327                 return return_type_symbol;
       
 20328                 
       
 20329             }
       
 20330             
       
 20331             
       
 20332             ERROR;
       
 20333         }
       
 20334         
       
 20335     }/*function_dt_to_int*/
       
 20336     break;
       
 20337 
       
 20338 /****
       
 20339  *TOD_TO_REAL
       
 20340  */
       
 20341     case function_tod_to_real :
       
 20342     {
       
 20343         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20344 
       
 20345         {
       
 20346             symbol_c *IN_type_symbol = param_data_type;
       
 20347             last_type_symbol = IN_type_symbol;
       
 20348             
       
 20349             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20350             {
       
 20351         
       
 20352                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 20353                 return return_type_symbol;
       
 20354                 
       
 20355             }
       
 20356             
       
 20357             
       
 20358             ERROR;
       
 20359         }
       
 20360         
       
 20361     }/*function_tod_to_real*/
       
 20362     break;
       
 20363 
       
 20364 /****
       
 20365  *TOD_TO_SINT
       
 20366  */
       
 20367     case function_tod_to_sint :
       
 20368     {
       
 20369         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20370 
       
 20371         {
       
 20372             symbol_c *IN_type_symbol = param_data_type;
       
 20373             last_type_symbol = IN_type_symbol;
       
 20374             
       
 20375             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20376             {
       
 20377         
       
 20378                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 20379                 return return_type_symbol;
       
 20380                 
       
 20381             }
       
 20382             
       
 20383             
       
 20384             ERROR;
       
 20385         }
       
 20386         
       
 20387     }/*function_tod_to_sint*/
       
 20388     break;
       
 20389 
       
 20390 /****
       
 20391  *TOD_TO_LINT
       
 20392  */
       
 20393     case function_tod_to_lint :
       
 20394     {
       
 20395         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20396 
       
 20397         {
       
 20398             symbol_c *IN_type_symbol = param_data_type;
       
 20399             last_type_symbol = IN_type_symbol;
       
 20400             
       
 20401             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20402             {
       
 20403         
       
 20404                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 20405                 return return_type_symbol;
       
 20406                 
       
 20407             }
       
 20408             
       
 20409             
       
 20410             ERROR;
       
 20411         }
       
 20412         
       
 20413     }/*function_tod_to_lint*/
       
 20414     break;
       
 20415 
       
 20416 /****
       
 20417  *TOD_TO_DINT
       
 20418  */
       
 20419     case function_tod_to_dint :
       
 20420     {
       
 20421         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20422 
       
 20423         {
       
 20424             symbol_c *IN_type_symbol = param_data_type;
       
 20425             last_type_symbol = IN_type_symbol;
       
 20426             
       
 20427             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20428             {
       
 20429         
       
 20430                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 20431                 return return_type_symbol;
       
 20432                 
       
 20433             }
       
 20434             
       
 20435             
       
 20436             ERROR;
       
 20437         }
       
 20438         
       
 20439     }/*function_tod_to_dint*/
       
 20440     break;
       
 20441 
       
 20442 /****
       
 20443  *TOD_TO_DWORD
       
 20444  */
       
 20445     case function_tod_to_dword :
       
 20446     {
       
 20447         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20448 
       
 20449         {
       
 20450             symbol_c *IN_type_symbol = param_data_type;
       
 20451             last_type_symbol = IN_type_symbol;
       
 20452             
       
 20453             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20454             {
       
 20455         
       
 20456                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 20457                 return return_type_symbol;
       
 20458                 
       
 20459             }
       
 20460             
       
 20461             
       
 20462             ERROR;
       
 20463         }
       
 20464         
       
 20465     }/*function_tod_to_dword*/
       
 20466     break;
       
 20467 
       
 20468 /****
       
 20469  *TOD_TO_UDINT
       
 20470  */
       
 20471     case function_tod_to_udint :
       
 20472     {
       
 20473         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20474 
       
 20475         {
       
 20476             symbol_c *IN_type_symbol = param_data_type;
       
 20477             last_type_symbol = IN_type_symbol;
       
 20478             
       
 20479             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20480             {
       
 20481         
       
 20482                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 20483                 return return_type_symbol;
       
 20484                 
       
 20485             }
       
 20486             
       
 20487             
       
 20488             ERROR;
       
 20489         }
       
 20490         
       
 20491     }/*function_tod_to_udint*/
       
 20492     break;
       
 20493 
       
 20494 /****
       
 20495  *TOD_TO_WORD
       
 20496  */
       
 20497     case function_tod_to_word :
       
 20498     {
       
 20499         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20500 
       
 20501         {
       
 20502             symbol_c *IN_type_symbol = param_data_type;
       
 20503             last_type_symbol = IN_type_symbol;
       
 20504             
       
 20505             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20506             {
       
 20507         
       
 20508                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 20509                 return return_type_symbol;
       
 20510                 
       
 20511             }
       
 20512             
       
 20513             
       
 20514             ERROR;
       
 20515         }
       
 20516         
       
 20517     }/*function_tod_to_word*/
       
 20518     break;
       
 20519 
       
 20520 /****
       
 20521  *TOD_TO_STRING
       
 20522  */
       
 20523     case function_tod_to_string :
       
 20524     {
       
 20525         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20526 
       
 20527         {
       
 20528             symbol_c *IN_type_symbol = param_data_type;
       
 20529             last_type_symbol = IN_type_symbol;
       
 20530             
       
 20531             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20532             {
       
 20533         
       
 20534                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 20535                 return return_type_symbol;
       
 20536                 
       
 20537             }
       
 20538             
       
 20539             
       
 20540             ERROR;
       
 20541         }
       
 20542         
       
 20543     }/*function_tod_to_string*/
       
 20544     break;
       
 20545 
       
 20546 /****
       
 20547  *TOD_TO_LWORD
       
 20548  */
       
 20549     case function_tod_to_lword :
       
 20550     {
       
 20551         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20552 
       
 20553         {
       
 20554             symbol_c *IN_type_symbol = param_data_type;
       
 20555             last_type_symbol = IN_type_symbol;
       
 20556             
       
 20557             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20558             {
       
 20559         
       
 20560                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 20561                 return return_type_symbol;
       
 20562                 
       
 20563             }
       
 20564             
       
 20565             
       
 20566             ERROR;
       
 20567         }
       
 20568         
       
 20569     }/*function_tod_to_lword*/
       
 20570     break;
       
 20571 
       
 20572 /****
       
 20573  *TOD_TO_UINT
       
 20574  */
       
 20575     case function_tod_to_uint :
       
 20576     {
       
 20577         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20578 
       
 20579         {
       
 20580             symbol_c *IN_type_symbol = param_data_type;
       
 20581             last_type_symbol = IN_type_symbol;
       
 20582             
       
 20583             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20584             {
       
 20585         
       
 20586                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 20587                 return return_type_symbol;
       
 20588                 
       
 20589             }
       
 20590             
       
 20591             
       
 20592             ERROR;
       
 20593         }
       
 20594         
       
 20595     }/*function_tod_to_uint*/
       
 20596     break;
       
 20597 
       
 20598 /****
       
 20599  *TOD_TO_LREAL
       
 20600  */
       
 20601     case function_tod_to_lreal :
       
 20602     {
       
 20603         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20604 
       
 20605         {
       
 20606             symbol_c *IN_type_symbol = param_data_type;
       
 20607             last_type_symbol = IN_type_symbol;
       
 20608             
       
 20609             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20610             {
       
 20611         
       
 20612                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 20613                 return return_type_symbol;
       
 20614                 
       
 20615             }
       
 20616             
       
 20617             
       
 20618             ERROR;
       
 20619         }
       
 20620         
       
 20621     }/*function_tod_to_lreal*/
       
 20622     break;
       
 20623 
       
 20624 /****
       
 20625  *TOD_TO_BYTE
       
 20626  */
       
 20627     case function_tod_to_byte :
       
 20628     {
       
 20629         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20630 
       
 20631         {
       
 20632             symbol_c *IN_type_symbol = param_data_type;
       
 20633             last_type_symbol = IN_type_symbol;
       
 20634             
       
 20635             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20636             {
       
 20637         
       
 20638                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 20639                 return return_type_symbol;
       
 20640                 
       
 20641             }
       
 20642             
       
 20643             
       
 20644             ERROR;
       
 20645         }
       
 20646         
       
 20647     }/*function_tod_to_byte*/
       
 20648     break;
       
 20649 
       
 20650 /****
       
 20651  *TOD_TO_USINT
       
 20652  */
       
 20653     case function_tod_to_usint :
       
 20654     {
       
 20655         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20656 
       
 20657         {
       
 20658             symbol_c *IN_type_symbol = param_data_type;
       
 20659             last_type_symbol = IN_type_symbol;
       
 20660             
       
 20661             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20662             {
       
 20663         
       
 20664                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 20665                 return return_type_symbol;
       
 20666                 
       
 20667             }
       
 20668             
       
 20669             
       
 20670             ERROR;
       
 20671         }
       
 20672         
       
 20673     }/*function_tod_to_usint*/
       
 20674     break;
       
 20675 
       
 20676 /****
       
 20677  *TOD_TO_ULINT
       
 20678  */
       
 20679     case function_tod_to_ulint :
       
 20680     {
       
 20681         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20682 
       
 20683         {
       
 20684             symbol_c *IN_type_symbol = param_data_type;
       
 20685             last_type_symbol = IN_type_symbol;
       
 20686             
       
 20687             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20688             {
       
 20689         
       
 20690                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 20691                 return return_type_symbol;
       
 20692                 
       
 20693             }
       
 20694             
       
 20695             
       
 20696             ERROR;
       
 20697         }
       
 20698         
       
 20699     }/*function_tod_to_ulint*/
       
 20700     break;
       
 20701 
       
 20702 /****
       
 20703  *TOD_TO_INT
       
 20704  */
       
 20705     case function_tod_to_int :
       
 20706     {
       
 20707         symbol_c *last_type_symbol = &search_constant_type_c::tod_type_name;
       
 20708 
       
 20709         {
       
 20710             symbol_c *IN_type_symbol = param_data_type;
       
 20711             last_type_symbol = IN_type_symbol;
       
 20712             
       
 20713             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 20714             {
       
 20715         
       
 20716                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 20717                 return return_type_symbol;
       
 20718                 
       
 20719             }
       
 20720             
       
 20721             
       
 20722             ERROR;
       
 20723         }
       
 20724         
       
 20725     }/*function_tod_to_int*/
       
 20726     break;
       
 20727 
       
 20728 /****
       
 20729  *UDINT_TO_REAL
       
 20730  */
       
 20731     case function_udint_to_real :
       
 20732     {
       
 20733         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20734 
       
 20735         {
       
 20736             symbol_c *IN_type_symbol = param_data_type;
       
 20737             last_type_symbol = IN_type_symbol;
       
 20738             
       
 20739             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20740             {
       
 20741         
       
 20742                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 20743                 return return_type_symbol;
       
 20744                 
       
 20745             }
       
 20746             
       
 20747             
       
 20748             ERROR;
       
 20749         }
       
 20750         
       
 20751     }/*function_udint_to_real*/
       
 20752     break;
       
 20753 
       
 20754 /****
       
 20755  *UDINT_TO_SINT
       
 20756  */
       
 20757     case function_udint_to_sint :
       
 20758     {
       
 20759         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20760 
       
 20761         {
       
 20762             symbol_c *IN_type_symbol = param_data_type;
       
 20763             last_type_symbol = IN_type_symbol;
       
 20764             
       
 20765             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20766             {
       
 20767         
       
 20768                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 20769                 return return_type_symbol;
       
 20770                 
       
 20771             }
       
 20772             
       
 20773             
       
 20774             ERROR;
       
 20775         }
       
 20776         
       
 20777     }/*function_udint_to_sint*/
       
 20778     break;
       
 20779 
       
 20780 /****
       
 20781  *UDINT_TO_LINT
       
 20782  */
       
 20783     case function_udint_to_lint :
       
 20784     {
       
 20785         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20786 
       
 20787         {
       
 20788             symbol_c *IN_type_symbol = param_data_type;
       
 20789             last_type_symbol = IN_type_symbol;
       
 20790             
       
 20791             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20792             {
       
 20793         
       
 20794                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 20795                 return return_type_symbol;
       
 20796                 
       
 20797             }
       
 20798             
       
 20799             
       
 20800             ERROR;
       
 20801         }
       
 20802         
       
 20803     }/*function_udint_to_lint*/
       
 20804     break;
       
 20805 
       
 20806 /****
       
 20807  *UDINT_TO_DINT
       
 20808  */
       
 20809     case function_udint_to_dint :
       
 20810     {
       
 20811         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20812 
       
 20813         {
       
 20814             symbol_c *IN_type_symbol = param_data_type;
       
 20815             last_type_symbol = IN_type_symbol;
       
 20816             
       
 20817             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20818             {
       
 20819         
       
 20820                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 20821                 return return_type_symbol;
       
 20822                 
       
 20823             }
       
 20824             
       
 20825             
       
 20826             ERROR;
       
 20827         }
       
 20828         
       
 20829     }/*function_udint_to_dint*/
       
 20830     break;
       
 20831 
       
 20832 /****
       
 20833  *UDINT_TO_DATE
       
 20834  */
       
 20835     case function_udint_to_date :
       
 20836     {
       
 20837         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20838 
       
 20839         {
       
 20840             symbol_c *IN_type_symbol = param_data_type;
       
 20841             last_type_symbol = IN_type_symbol;
       
 20842             
       
 20843             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20844             {
       
 20845         
       
 20846                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 20847                 return return_type_symbol;
       
 20848                 
       
 20849             }
       
 20850             
       
 20851             
       
 20852             ERROR;
       
 20853         }
       
 20854         
       
 20855     }/*function_udint_to_date*/
       
 20856     break;
       
 20857 
       
 20858 /****
       
 20859  *UDINT_TO_DWORD
       
 20860  */
       
 20861     case function_udint_to_dword :
       
 20862     {
       
 20863         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20864 
       
 20865         {
       
 20866             symbol_c *IN_type_symbol = param_data_type;
       
 20867             last_type_symbol = IN_type_symbol;
       
 20868             
       
 20869             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20870             {
       
 20871         
       
 20872                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 20873                 return return_type_symbol;
       
 20874                 
       
 20875             }
       
 20876             
       
 20877             
       
 20878             ERROR;
       
 20879         }
       
 20880         
       
 20881     }/*function_udint_to_dword*/
       
 20882     break;
       
 20883 
       
 20884 /****
       
 20885  *UDINT_TO_DT
       
 20886  */
       
 20887     case function_udint_to_dt :
       
 20888     {
       
 20889         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20890 
       
 20891         {
       
 20892             symbol_c *IN_type_symbol = param_data_type;
       
 20893             last_type_symbol = IN_type_symbol;
       
 20894             
       
 20895             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20896             {
       
 20897         
       
 20898                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 20899                 return return_type_symbol;
       
 20900                 
       
 20901             }
       
 20902             
       
 20903             
       
 20904             ERROR;
       
 20905         }
       
 20906         
       
 20907     }/*function_udint_to_dt*/
       
 20908     break;
       
 20909 
       
 20910 /****
       
 20911  *UDINT_TO_TOD
       
 20912  */
       
 20913     case function_udint_to_tod :
       
 20914     {
       
 20915         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20916 
       
 20917         {
       
 20918             symbol_c *IN_type_symbol = param_data_type;
       
 20919             last_type_symbol = IN_type_symbol;
       
 20920             
       
 20921             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20922             {
       
 20923         
       
 20924                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 20925                 return return_type_symbol;
       
 20926                 
       
 20927             }
       
 20928             
       
 20929             
       
 20930             ERROR;
       
 20931         }
       
 20932         
       
 20933     }/*function_udint_to_tod*/
       
 20934     break;
       
 20935 
       
 20936 /****
       
 20937  *UDINT_TO_WORD
       
 20938  */
       
 20939     case function_udint_to_word :
       
 20940     {
       
 20941         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20942 
       
 20943         {
       
 20944             symbol_c *IN_type_symbol = param_data_type;
       
 20945             last_type_symbol = IN_type_symbol;
       
 20946             
       
 20947             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20948             {
       
 20949         
       
 20950                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 20951                 return return_type_symbol;
       
 20952                 
       
 20953             }
       
 20954             
       
 20955             
       
 20956             ERROR;
       
 20957         }
       
 20958         
       
 20959     }/*function_udint_to_word*/
       
 20960     break;
       
 20961 
       
 20962 /****
       
 20963  *UDINT_TO_STRING
       
 20964  */
       
 20965     case function_udint_to_string :
       
 20966     {
       
 20967         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20968 
       
 20969         {
       
 20970             symbol_c *IN_type_symbol = param_data_type;
       
 20971             last_type_symbol = IN_type_symbol;
       
 20972             
       
 20973             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 20974             {
       
 20975         
       
 20976                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 20977                 return return_type_symbol;
       
 20978                 
       
 20979             }
       
 20980             
       
 20981             
       
 20982             ERROR;
       
 20983         }
       
 20984         
       
 20985     }/*function_udint_to_string*/
       
 20986     break;
       
 20987 
       
 20988 /****
       
 20989  *UDINT_TO_LWORD
       
 20990  */
       
 20991     case function_udint_to_lword :
       
 20992     {
       
 20993         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 20994 
       
 20995         {
       
 20996             symbol_c *IN_type_symbol = param_data_type;
       
 20997             last_type_symbol = IN_type_symbol;
       
 20998             
       
 20999             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21000             {
       
 21001         
       
 21002                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 21003                 return return_type_symbol;
       
 21004                 
       
 21005             }
       
 21006             
       
 21007             
       
 21008             ERROR;
       
 21009         }
       
 21010         
       
 21011     }/*function_udint_to_lword*/
       
 21012     break;
       
 21013 
       
 21014 /****
       
 21015  *UDINT_TO_UINT
       
 21016  */
       
 21017     case function_udint_to_uint :
       
 21018     {
       
 21019         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21020 
       
 21021         {
       
 21022             symbol_c *IN_type_symbol = param_data_type;
       
 21023             last_type_symbol = IN_type_symbol;
       
 21024             
       
 21025             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21026             {
       
 21027         
       
 21028                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 21029                 return return_type_symbol;
       
 21030                 
       
 21031             }
       
 21032             
       
 21033             
       
 21034             ERROR;
       
 21035         }
       
 21036         
       
 21037     }/*function_udint_to_uint*/
       
 21038     break;
       
 21039 
       
 21040 /****
       
 21041  *UDINT_TO_LREAL
       
 21042  */
       
 21043     case function_udint_to_lreal :
       
 21044     {
       
 21045         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21046 
       
 21047         {
       
 21048             symbol_c *IN_type_symbol = param_data_type;
       
 21049             last_type_symbol = IN_type_symbol;
       
 21050             
       
 21051             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21052             {
       
 21053         
       
 21054                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 21055                 return return_type_symbol;
       
 21056                 
       
 21057             }
       
 21058             
       
 21059             
       
 21060             ERROR;
       
 21061         }
       
 21062         
       
 21063     }/*function_udint_to_lreal*/
       
 21064     break;
       
 21065 
       
 21066 /****
       
 21067  *UDINT_TO_BYTE
       
 21068  */
       
 21069     case function_udint_to_byte :
       
 21070     {
       
 21071         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21072 
       
 21073         {
       
 21074             symbol_c *IN_type_symbol = param_data_type;
       
 21075             last_type_symbol = IN_type_symbol;
       
 21076             
       
 21077             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21078             {
       
 21079         
       
 21080                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 21081                 return return_type_symbol;
       
 21082                 
       
 21083             }
       
 21084             
       
 21085             
       
 21086             ERROR;
       
 21087         }
       
 21088         
       
 21089     }/*function_udint_to_byte*/
       
 21090     break;
       
 21091 
       
 21092 /****
       
 21093  *UDINT_TO_USINT
       
 21094  */
       
 21095     case function_udint_to_usint :
       
 21096     {
       
 21097         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21098 
       
 21099         {
       
 21100             symbol_c *IN_type_symbol = param_data_type;
       
 21101             last_type_symbol = IN_type_symbol;
       
 21102             
       
 21103             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21104             {
       
 21105         
       
 21106                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 21107                 return return_type_symbol;
       
 21108                 
       
 21109             }
       
 21110             
       
 21111             
       
 21112             ERROR;
       
 21113         }
       
 21114         
       
 21115     }/*function_udint_to_usint*/
       
 21116     break;
       
 21117 
       
 21118 /****
       
 21119  *UDINT_TO_ULINT
       
 21120  */
       
 21121     case function_udint_to_ulint :
       
 21122     {
       
 21123         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21124 
       
 21125         {
       
 21126             symbol_c *IN_type_symbol = param_data_type;
       
 21127             last_type_symbol = IN_type_symbol;
       
 21128             
       
 21129             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21130             {
       
 21131         
       
 21132                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 21133                 return return_type_symbol;
       
 21134                 
       
 21135             }
       
 21136             
       
 21137             
       
 21138             ERROR;
       
 21139         }
       
 21140         
       
 21141     }/*function_udint_to_ulint*/
       
 21142     break;
       
 21143 
       
 21144 /****
       
 21145  *UDINT_TO_BOOL
       
 21146  */
       
 21147     case function_udint_to_bool :
       
 21148     {
       
 21149         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21150 
       
 21151         {
       
 21152             symbol_c *IN_type_symbol = param_data_type;
       
 21153             last_type_symbol = IN_type_symbol;
       
 21154             
       
 21155             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21156             {
       
 21157         
       
 21158                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 21159                 return return_type_symbol;
       
 21160                 
       
 21161             }
       
 21162             
       
 21163             
       
 21164             ERROR;
       
 21165         }
       
 21166         
       
 21167     }/*function_udint_to_bool*/
       
 21168     break;
       
 21169 
       
 21170 /****
       
 21171  *UDINT_TO_TIME
       
 21172  */
       
 21173     case function_udint_to_time :
       
 21174     {
       
 21175         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21176 
       
 21177         {
       
 21178             symbol_c *IN_type_symbol = param_data_type;
       
 21179             last_type_symbol = IN_type_symbol;
       
 21180             
       
 21181             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21182             {
       
 21183         
       
 21184                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 21185                 return return_type_symbol;
       
 21186                 
       
 21187             }
       
 21188             
       
 21189             
       
 21190             ERROR;
       
 21191         }
       
 21192         
       
 21193     }/*function_udint_to_time*/
       
 21194     break;
       
 21195 
       
 21196 /****
       
 21197  *UDINT_TO_INT
       
 21198  */
       
 21199     case function_udint_to_int :
       
 21200     {
       
 21201         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 21202 
       
 21203         {
       
 21204             symbol_c *IN_type_symbol = param_data_type;
       
 21205             last_type_symbol = IN_type_symbol;
       
 21206             
       
 21207             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 21208             {
       
 21209         
       
 21210                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 21211                 return return_type_symbol;
       
 21212                 
       
 21213             }
       
 21214             
       
 21215             
       
 21216             ERROR;
       
 21217         }
       
 21218         
       
 21219     }/*function_udint_to_int*/
       
 21220     break;
       
 21221 
       
 21222 /****
       
 21223  *WORD_TO_REAL
       
 21224  */
       
 21225     case function_word_to_real :
       
 21226     {
       
 21227         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21228 
       
 21229         {
       
 21230             symbol_c *IN_type_symbol = param_data_type;
       
 21231             last_type_symbol = IN_type_symbol;
       
 21232             
       
 21233             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21234             {
       
 21235         
       
 21236                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 21237                 return return_type_symbol;
       
 21238                 
       
 21239             }
       
 21240             
       
 21241             
       
 21242             ERROR;
       
 21243         }
       
 21244         
       
 21245     }/*function_word_to_real*/
       
 21246     break;
       
 21247 
       
 21248 /****
       
 21249  *WORD_TO_SINT
       
 21250  */
       
 21251     case function_word_to_sint :
       
 21252     {
       
 21253         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21254 
       
 21255         {
       
 21256             symbol_c *IN_type_symbol = param_data_type;
       
 21257             last_type_symbol = IN_type_symbol;
       
 21258             
       
 21259             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21260             {
       
 21261         
       
 21262                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 21263                 return return_type_symbol;
       
 21264                 
       
 21265             }
       
 21266             
       
 21267             
       
 21268             ERROR;
       
 21269         }
       
 21270         
       
 21271     }/*function_word_to_sint*/
       
 21272     break;
       
 21273 
       
 21274 /****
       
 21275  *WORD_TO_LINT
       
 21276  */
       
 21277     case function_word_to_lint :
       
 21278     {
       
 21279         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21280 
       
 21281         {
       
 21282             symbol_c *IN_type_symbol = param_data_type;
       
 21283             last_type_symbol = IN_type_symbol;
       
 21284             
       
 21285             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21286             {
       
 21287         
       
 21288                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 21289                 return return_type_symbol;
       
 21290                 
       
 21291             }
       
 21292             
       
 21293             
       
 21294             ERROR;
       
 21295         }
       
 21296         
       
 21297     }/*function_word_to_lint*/
       
 21298     break;
       
 21299 
       
 21300 /****
       
 21301  *WORD_TO_DINT
       
 21302  */
       
 21303     case function_word_to_dint :
       
 21304     {
       
 21305         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21306 
       
 21307         {
       
 21308             symbol_c *IN_type_symbol = param_data_type;
       
 21309             last_type_symbol = IN_type_symbol;
       
 21310             
       
 21311             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21312             {
       
 21313         
       
 21314                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 21315                 return return_type_symbol;
       
 21316                 
       
 21317             }
       
 21318             
       
 21319             
       
 21320             ERROR;
       
 21321         }
       
 21322         
       
 21323     }/*function_word_to_dint*/
       
 21324     break;
       
 21325 
       
 21326 /****
       
 21327  *WORD_TO_DATE
       
 21328  */
       
 21329     case function_word_to_date :
       
 21330     {
       
 21331         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21332 
       
 21333         {
       
 21334             symbol_c *IN_type_symbol = param_data_type;
       
 21335             last_type_symbol = IN_type_symbol;
       
 21336             
       
 21337             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21338             {
       
 21339         
       
 21340                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 21341                 return return_type_symbol;
       
 21342                 
       
 21343             }
       
 21344             
       
 21345             
       
 21346             ERROR;
       
 21347         }
       
 21348         
       
 21349     }/*function_word_to_date*/
       
 21350     break;
       
 21351 
       
 21352 /****
       
 21353  *WORD_TO_DWORD
       
 21354  */
       
 21355     case function_word_to_dword :
       
 21356     {
       
 21357         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21358 
       
 21359         {
       
 21360             symbol_c *IN_type_symbol = param_data_type;
       
 21361             last_type_symbol = IN_type_symbol;
       
 21362             
       
 21363             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21364             {
       
 21365         
       
 21366                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 21367                 return return_type_symbol;
       
 21368                 
       
 21369             }
       
 21370             
       
 21371             
       
 21372             ERROR;
       
 21373         }
       
 21374         
       
 21375     }/*function_word_to_dword*/
       
 21376     break;
       
 21377 
       
 21378 /****
       
 21379  *WORD_TO_DT
       
 21380  */
       
 21381     case function_word_to_dt :
       
 21382     {
       
 21383         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21384 
       
 21385         {
       
 21386             symbol_c *IN_type_symbol = param_data_type;
       
 21387             last_type_symbol = IN_type_symbol;
       
 21388             
       
 21389             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21390             {
       
 21391         
       
 21392                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 21393                 return return_type_symbol;
       
 21394                 
       
 21395             }
       
 21396             
       
 21397             
       
 21398             ERROR;
       
 21399         }
       
 21400         
       
 21401     }/*function_word_to_dt*/
       
 21402     break;
       
 21403 
       
 21404 /****
       
 21405  *WORD_TO_TOD
       
 21406  */
       
 21407     case function_word_to_tod :
       
 21408     {
       
 21409         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21410 
       
 21411         {
       
 21412             symbol_c *IN_type_symbol = param_data_type;
       
 21413             last_type_symbol = IN_type_symbol;
       
 21414             
       
 21415             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21416             {
       
 21417         
       
 21418                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 21419                 return return_type_symbol;
       
 21420                 
       
 21421             }
       
 21422             
       
 21423             
       
 21424             ERROR;
       
 21425         }
       
 21426         
       
 21427     }/*function_word_to_tod*/
       
 21428     break;
       
 21429 
       
 21430 /****
       
 21431  *WORD_TO_UDINT
       
 21432  */
       
 21433     case function_word_to_udint :
       
 21434     {
       
 21435         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21436 
       
 21437         {
       
 21438             symbol_c *IN_type_symbol = param_data_type;
       
 21439             last_type_symbol = IN_type_symbol;
       
 21440             
       
 21441             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21442             {
       
 21443         
       
 21444                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 21445                 return return_type_symbol;
       
 21446                 
       
 21447             }
       
 21448             
       
 21449             
       
 21450             ERROR;
       
 21451         }
       
 21452         
       
 21453     }/*function_word_to_udint*/
       
 21454     break;
       
 21455 
       
 21456 /****
       
 21457  *WORD_TO_STRING
       
 21458  */
       
 21459     case function_word_to_string :
       
 21460     {
       
 21461         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21462 
       
 21463         {
       
 21464             symbol_c *IN_type_symbol = param_data_type;
       
 21465             last_type_symbol = IN_type_symbol;
       
 21466             
       
 21467             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21468             {
       
 21469         
       
 21470                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 21471                 return return_type_symbol;
       
 21472                 
       
 21473             }
       
 21474             
       
 21475             
       
 21476             ERROR;
       
 21477         }
       
 21478         
       
 21479     }/*function_word_to_string*/
       
 21480     break;
       
 21481 
       
 21482 /****
       
 21483  *WORD_TO_LWORD
       
 21484  */
       
 21485     case function_word_to_lword :
       
 21486     {
       
 21487         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21488 
       
 21489         {
       
 21490             symbol_c *IN_type_symbol = param_data_type;
       
 21491             last_type_symbol = IN_type_symbol;
       
 21492             
       
 21493             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21494             {
       
 21495         
       
 21496                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 21497                 return return_type_symbol;
       
 21498                 
       
 21499             }
       
 21500             
       
 21501             
       
 21502             ERROR;
       
 21503         }
       
 21504         
       
 21505     }/*function_word_to_lword*/
       
 21506     break;
       
 21507 
       
 21508 /****
       
 21509  *WORD_TO_UINT
       
 21510  */
       
 21511     case function_word_to_uint :
       
 21512     {
       
 21513         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21514 
       
 21515         {
       
 21516             symbol_c *IN_type_symbol = param_data_type;
       
 21517             last_type_symbol = IN_type_symbol;
       
 21518             
       
 21519             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21520             {
       
 21521         
       
 21522                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 21523                 return return_type_symbol;
       
 21524                 
       
 21525             }
       
 21526             
       
 21527             
       
 21528             ERROR;
       
 21529         }
       
 21530         
       
 21531     }/*function_word_to_uint*/
       
 21532     break;
       
 21533 
       
 21534 /****
       
 21535  *WORD_TO_LREAL
       
 21536  */
       
 21537     case function_word_to_lreal :
       
 21538     {
       
 21539         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21540 
       
 21541         {
       
 21542             symbol_c *IN_type_symbol = param_data_type;
       
 21543             last_type_symbol = IN_type_symbol;
       
 21544             
       
 21545             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21546             {
       
 21547         
       
 21548                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 21549                 return return_type_symbol;
       
 21550                 
       
 21551             }
       
 21552             
       
 21553             
       
 21554             ERROR;
       
 21555         }
       
 21556         
       
 21557     }/*function_word_to_lreal*/
       
 21558     break;
       
 21559 
       
 21560 /****
       
 21561  *WORD_TO_BYTE
       
 21562  */
       
 21563     case function_word_to_byte :
       
 21564     {
       
 21565         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21566 
       
 21567         {
       
 21568             symbol_c *IN_type_symbol = param_data_type;
       
 21569             last_type_symbol = IN_type_symbol;
       
 21570             
       
 21571             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21572             {
       
 21573         
       
 21574                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 21575                 return return_type_symbol;
       
 21576                 
       
 21577             }
       
 21578             
       
 21579             
       
 21580             ERROR;
       
 21581         }
       
 21582         
       
 21583     }/*function_word_to_byte*/
       
 21584     break;
       
 21585 
       
 21586 /****
       
 21587  *WORD_TO_USINT
       
 21588  */
       
 21589     case function_word_to_usint :
       
 21590     {
       
 21591         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21592 
       
 21593         {
       
 21594             symbol_c *IN_type_symbol = param_data_type;
       
 21595             last_type_symbol = IN_type_symbol;
       
 21596             
       
 21597             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21598             {
       
 21599         
       
 21600                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 21601                 return return_type_symbol;
       
 21602                 
       
 21603             }
       
 21604             
       
 21605             
       
 21606             ERROR;
       
 21607         }
       
 21608         
       
 21609     }/*function_word_to_usint*/
       
 21610     break;
       
 21611 
       
 21612 /****
       
 21613  *WORD_TO_ULINT
       
 21614  */
       
 21615     case function_word_to_ulint :
       
 21616     {
       
 21617         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21618 
       
 21619         {
       
 21620             symbol_c *IN_type_symbol = param_data_type;
       
 21621             last_type_symbol = IN_type_symbol;
       
 21622             
       
 21623             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21624             {
       
 21625         
       
 21626                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 21627                 return return_type_symbol;
       
 21628                 
       
 21629             }
       
 21630             
       
 21631             
       
 21632             ERROR;
       
 21633         }
       
 21634         
       
 21635     }/*function_word_to_ulint*/
       
 21636     break;
       
 21637 
       
 21638 /****
       
 21639  *WORD_TO_BOOL
       
 21640  */
       
 21641     case function_word_to_bool :
       
 21642     {
       
 21643         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21644 
       
 21645         {
       
 21646             symbol_c *IN_type_symbol = param_data_type;
       
 21647             last_type_symbol = IN_type_symbol;
       
 21648             
       
 21649             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21650             {
       
 21651         
       
 21652                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 21653                 return return_type_symbol;
       
 21654                 
       
 21655             }
       
 21656             
       
 21657             
       
 21658             ERROR;
       
 21659         }
       
 21660         
       
 21661     }/*function_word_to_bool*/
       
 21662     break;
       
 21663 
       
 21664 /****
       
 21665  *WORD_TO_TIME
       
 21666  */
       
 21667     case function_word_to_time :
       
 21668     {
       
 21669         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21670 
       
 21671         {
       
 21672             symbol_c *IN_type_symbol = param_data_type;
       
 21673             last_type_symbol = IN_type_symbol;
       
 21674             
       
 21675             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21676             {
       
 21677         
       
 21678                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 21679                 return return_type_symbol;
       
 21680                 
       
 21681             }
       
 21682             
       
 21683             
       
 21684             ERROR;
       
 21685         }
       
 21686         
       
 21687     }/*function_word_to_time*/
       
 21688     break;
       
 21689 
       
 21690 /****
       
 21691  *WORD_TO_INT
       
 21692  */
       
 21693     case function_word_to_int :
       
 21694     {
       
 21695         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 21696 
       
 21697         {
       
 21698             symbol_c *IN_type_symbol = param_data_type;
       
 21699             last_type_symbol = IN_type_symbol;
       
 21700             
       
 21701             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 21702             {
       
 21703         
       
 21704                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 21705                 return return_type_symbol;
       
 21706                 
       
 21707             }
       
 21708             
       
 21709             
       
 21710             ERROR;
       
 21711         }
       
 21712         
       
 21713     }/*function_word_to_int*/
       
 21714     break;
       
 21715 
       
 21716 /****
       
 21717  *STRING_TO_REAL
       
 21718  */
       
 21719     case function_string_to_real :
       
 21720     {
       
 21721         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21722 
       
 21723         {
       
 21724             symbol_c *IN_type_symbol = param_data_type;
       
 21725             last_type_symbol = IN_type_symbol;
       
 21726             
       
 21727             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21728             {
       
 21729         
       
 21730                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 21731                 return return_type_symbol;
       
 21732                 
       
 21733             }
       
 21734             
       
 21735             
       
 21736             ERROR;
       
 21737         }
       
 21738         
       
 21739     }/*function_string_to_real*/
       
 21740     break;
       
 21741 
       
 21742 /****
       
 21743  *STRING_TO_SINT
       
 21744  */
       
 21745     case function_string_to_sint :
       
 21746     {
       
 21747         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21748 
       
 21749         {
       
 21750             symbol_c *IN_type_symbol = param_data_type;
       
 21751             last_type_symbol = IN_type_symbol;
       
 21752             
       
 21753             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21754             {
       
 21755         
       
 21756                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 21757                 return return_type_symbol;
       
 21758                 
       
 21759             }
       
 21760             
       
 21761             
       
 21762             ERROR;
       
 21763         }
       
 21764         
       
 21765     }/*function_string_to_sint*/
       
 21766     break;
       
 21767 
       
 21768 /****
       
 21769  *STRING_TO_LINT
       
 21770  */
       
 21771     case function_string_to_lint :
       
 21772     {
       
 21773         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21774 
       
 21775         {
       
 21776             symbol_c *IN_type_symbol = param_data_type;
       
 21777             last_type_symbol = IN_type_symbol;
       
 21778             
       
 21779             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21780             {
       
 21781         
       
 21782                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 21783                 return return_type_symbol;
       
 21784                 
       
 21785             }
       
 21786             
       
 21787             
       
 21788             ERROR;
       
 21789         }
       
 21790         
       
 21791     }/*function_string_to_lint*/
       
 21792     break;
       
 21793 
       
 21794 /****
       
 21795  *STRING_TO_DINT
       
 21796  */
       
 21797     case function_string_to_dint :
       
 21798     {
       
 21799         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21800 
       
 21801         {
       
 21802             symbol_c *IN_type_symbol = param_data_type;
       
 21803             last_type_symbol = IN_type_symbol;
       
 21804             
       
 21805             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21806             {
       
 21807         
       
 21808                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 21809                 return return_type_symbol;
       
 21810                 
       
 21811             }
       
 21812             
       
 21813             
       
 21814             ERROR;
       
 21815         }
       
 21816         
       
 21817     }/*function_string_to_dint*/
       
 21818     break;
       
 21819 
       
 21820 /****
       
 21821  *STRING_TO_DATE
       
 21822  */
       
 21823     case function_string_to_date :
       
 21824     {
       
 21825         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21826 
       
 21827         {
       
 21828             symbol_c *IN_type_symbol = param_data_type;
       
 21829             last_type_symbol = IN_type_symbol;
       
 21830             
       
 21831             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21832             {
       
 21833         
       
 21834                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 21835                 return return_type_symbol;
       
 21836                 
       
 21837             }
       
 21838             
       
 21839             
       
 21840             ERROR;
       
 21841         }
       
 21842         
       
 21843     }/*function_string_to_date*/
       
 21844     break;
       
 21845 
       
 21846 /****
       
 21847  *STRING_TO_DWORD
       
 21848  */
       
 21849     case function_string_to_dword :
       
 21850     {
       
 21851         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21852 
       
 21853         {
       
 21854             symbol_c *IN_type_symbol = param_data_type;
       
 21855             last_type_symbol = IN_type_symbol;
       
 21856             
       
 21857             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21858             {
       
 21859         
       
 21860                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 21861                 return return_type_symbol;
       
 21862                 
       
 21863             }
       
 21864             
       
 21865             
       
 21866             ERROR;
       
 21867         }
       
 21868         
       
 21869     }/*function_string_to_dword*/
       
 21870     break;
       
 21871 
       
 21872 /****
       
 21873  *STRING_TO_DT
       
 21874  */
       
 21875     case function_string_to_dt :
       
 21876     {
       
 21877         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21878 
       
 21879         {
       
 21880             symbol_c *IN_type_symbol = param_data_type;
       
 21881             last_type_symbol = IN_type_symbol;
       
 21882             
       
 21883             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21884             {
       
 21885         
       
 21886                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 21887                 return return_type_symbol;
       
 21888                 
       
 21889             }
       
 21890             
       
 21891             
       
 21892             ERROR;
       
 21893         }
       
 21894         
       
 21895     }/*function_string_to_dt*/
       
 21896     break;
       
 21897 
       
 21898 /****
       
 21899  *STRING_TO_TOD
       
 21900  */
       
 21901     case function_string_to_tod :
       
 21902     {
       
 21903         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21904 
       
 21905         {
       
 21906             symbol_c *IN_type_symbol = param_data_type;
       
 21907             last_type_symbol = IN_type_symbol;
       
 21908             
       
 21909             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21910             {
       
 21911         
       
 21912                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 21913                 return return_type_symbol;
       
 21914                 
       
 21915             }
       
 21916             
       
 21917             
       
 21918             ERROR;
       
 21919         }
       
 21920         
       
 21921     }/*function_string_to_tod*/
       
 21922     break;
       
 21923 
       
 21924 /****
       
 21925  *STRING_TO_UDINT
       
 21926  */
       
 21927     case function_string_to_udint :
       
 21928     {
       
 21929         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21930 
       
 21931         {
       
 21932             symbol_c *IN_type_symbol = param_data_type;
       
 21933             last_type_symbol = IN_type_symbol;
       
 21934             
       
 21935             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21936             {
       
 21937         
       
 21938                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 21939                 return return_type_symbol;
       
 21940                 
       
 21941             }
       
 21942             
       
 21943             
       
 21944             ERROR;
       
 21945         }
       
 21946         
       
 21947     }/*function_string_to_udint*/
       
 21948     break;
       
 21949 
       
 21950 /****
       
 21951  *STRING_TO_WORD
       
 21952  */
       
 21953     case function_string_to_word :
       
 21954     {
       
 21955         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21956 
       
 21957         {
       
 21958             symbol_c *IN_type_symbol = param_data_type;
       
 21959             last_type_symbol = IN_type_symbol;
       
 21960             
       
 21961             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21962             {
       
 21963         
       
 21964                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 21965                 return return_type_symbol;
       
 21966                 
       
 21967             }
       
 21968             
       
 21969             
       
 21970             ERROR;
       
 21971         }
       
 21972         
       
 21973     }/*function_string_to_word*/
       
 21974     break;
       
 21975 
       
 21976 /****
       
 21977  *STRING_TO_LWORD
       
 21978  */
       
 21979     case function_string_to_lword :
       
 21980     {
       
 21981         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 21982 
       
 21983         {
       
 21984             symbol_c *IN_type_symbol = param_data_type;
       
 21985             last_type_symbol = IN_type_symbol;
       
 21986             
       
 21987             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 21988             {
       
 21989         
       
 21990                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 21991                 return return_type_symbol;
       
 21992                 
       
 21993             }
       
 21994             
       
 21995             
       
 21996             ERROR;
       
 21997         }
       
 21998         
       
 21999     }/*function_string_to_lword*/
       
 22000     break;
       
 22001 
       
 22002 /****
       
 22003  *STRING_TO_UINT
       
 22004  */
       
 22005     case function_string_to_uint :
       
 22006     {
       
 22007         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22008 
       
 22009         {
       
 22010             symbol_c *IN_type_symbol = param_data_type;
       
 22011             last_type_symbol = IN_type_symbol;
       
 22012             
       
 22013             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22014             {
       
 22015         
       
 22016                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 22017                 return return_type_symbol;
       
 22018                 
       
 22019             }
       
 22020             
       
 22021             
       
 22022             ERROR;
       
 22023         }
       
 22024         
       
 22025     }/*function_string_to_uint*/
       
 22026     break;
       
 22027 
       
 22028 /****
       
 22029  *STRING_TO_LREAL
       
 22030  */
       
 22031     case function_string_to_lreal :
       
 22032     {
       
 22033         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22034 
       
 22035         {
       
 22036             symbol_c *IN_type_symbol = param_data_type;
       
 22037             last_type_symbol = IN_type_symbol;
       
 22038             
       
 22039             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22040             {
       
 22041         
       
 22042                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 22043                 return return_type_symbol;
       
 22044                 
       
 22045             }
       
 22046             
       
 22047             
       
 22048             ERROR;
       
 22049         }
       
 22050         
       
 22051     }/*function_string_to_lreal*/
       
 22052     break;
       
 22053 
       
 22054 /****
       
 22055  *STRING_TO_BYTE
       
 22056  */
       
 22057     case function_string_to_byte :
       
 22058     {
       
 22059         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22060 
       
 22061         {
       
 22062             symbol_c *IN_type_symbol = param_data_type;
       
 22063             last_type_symbol = IN_type_symbol;
       
 22064             
       
 22065             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22066             {
       
 22067         
       
 22068                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 22069                 return return_type_symbol;
       
 22070                 
       
 22071             }
       
 22072             
       
 22073             
       
 22074             ERROR;
       
 22075         }
       
 22076         
       
 22077     }/*function_string_to_byte*/
       
 22078     break;
       
 22079 
       
 22080 /****
       
 22081  *STRING_TO_USINT
       
 22082  */
       
 22083     case function_string_to_usint :
       
 22084     {
       
 22085         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22086 
       
 22087         {
       
 22088             symbol_c *IN_type_symbol = param_data_type;
       
 22089             last_type_symbol = IN_type_symbol;
       
 22090             
       
 22091             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22092             {
       
 22093         
       
 22094                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 22095                 return return_type_symbol;
       
 22096                 
       
 22097             }
       
 22098             
       
 22099             
       
 22100             ERROR;
       
 22101         }
       
 22102         
       
 22103     }/*function_string_to_usint*/
       
 22104     break;
       
 22105 
       
 22106 /****
       
 22107  *STRING_TO_ULINT
       
 22108  */
       
 22109     case function_string_to_ulint :
       
 22110     {
       
 22111         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22112 
       
 22113         {
       
 22114             symbol_c *IN_type_symbol = param_data_type;
       
 22115             last_type_symbol = IN_type_symbol;
       
 22116             
       
 22117             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22118             {
       
 22119         
       
 22120                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 22121                 return return_type_symbol;
       
 22122                 
       
 22123             }
       
 22124             
       
 22125             
       
 22126             ERROR;
       
 22127         }
       
 22128         
       
 22129     }/*function_string_to_ulint*/
       
 22130     break;
       
 22131 
       
 22132 /****
       
 22133  *STRING_TO_BOOL
       
 22134  */
       
 22135     case function_string_to_bool :
       
 22136     {
       
 22137         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22138 
       
 22139         {
       
 22140             symbol_c *IN_type_symbol = param_data_type;
       
 22141             last_type_symbol = IN_type_symbol;
       
 22142             
       
 22143             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22144             {
       
 22145         
       
 22146                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 22147                 return return_type_symbol;
       
 22148                 
       
 22149             }
       
 22150             
       
 22151             
       
 22152             ERROR;
       
 22153         }
       
 22154         
       
 22155     }/*function_string_to_bool*/
       
 22156     break;
       
 22157 
       
 22158 /****
       
 22159  *STRING_TO_TIME
       
 22160  */
       
 22161     case function_string_to_time :
       
 22162     {
       
 22163         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22164 
       
 22165         {
       
 22166             symbol_c *IN_type_symbol = param_data_type;
       
 22167             last_type_symbol = IN_type_symbol;
       
 22168             
       
 22169             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22170             {
       
 22171         
       
 22172                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 22173                 return return_type_symbol;
       
 22174                 
       
 22175             }
       
 22176             
       
 22177             
       
 22178             ERROR;
       
 22179         }
       
 22180         
       
 22181     }/*function_string_to_time*/
       
 22182     break;
       
 22183 
       
 22184 /****
       
 22185  *STRING_TO_INT
       
 22186  */
       
 22187     case function_string_to_int :
       
 22188     {
       
 22189         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 22190 
       
 22191         {
       
 22192             symbol_c *IN_type_symbol = param_data_type;
       
 22193             last_type_symbol = IN_type_symbol;
       
 22194             
       
 22195             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 22196             {
       
 22197         
       
 22198                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 22199                 return return_type_symbol;
       
 22200                 
       
 22201             }
       
 22202             
       
 22203             
       
 22204             ERROR;
       
 22205         }
       
 22206         
       
 22207     }/*function_string_to_int*/
       
 22208     break;
       
 22209 
       
 22210 /****
       
 22211  *LWORD_TO_REAL
       
 22212  */
       
 22213     case function_lword_to_real :
       
 22214     {
       
 22215         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22216 
       
 22217         {
       
 22218             symbol_c *IN_type_symbol = param_data_type;
       
 22219             last_type_symbol = IN_type_symbol;
       
 22220             
       
 22221             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22222             {
       
 22223         
       
 22224                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 22225                 return return_type_symbol;
       
 22226                 
       
 22227             }
       
 22228             
       
 22229             
       
 22230             ERROR;
       
 22231         }
       
 22232         
       
 22233     }/*function_lword_to_real*/
       
 22234     break;
       
 22235 
       
 22236 /****
       
 22237  *LWORD_TO_SINT
       
 22238  */
       
 22239     case function_lword_to_sint :
       
 22240     {
       
 22241         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22242 
       
 22243         {
       
 22244             symbol_c *IN_type_symbol = param_data_type;
       
 22245             last_type_symbol = IN_type_symbol;
       
 22246             
       
 22247             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22248             {
       
 22249         
       
 22250                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 22251                 return return_type_symbol;
       
 22252                 
       
 22253             }
       
 22254             
       
 22255             
       
 22256             ERROR;
       
 22257         }
       
 22258         
       
 22259     }/*function_lword_to_sint*/
       
 22260     break;
       
 22261 
       
 22262 /****
       
 22263  *LWORD_TO_LINT
       
 22264  */
       
 22265     case function_lword_to_lint :
       
 22266     {
       
 22267         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22268 
       
 22269         {
       
 22270             symbol_c *IN_type_symbol = param_data_type;
       
 22271             last_type_symbol = IN_type_symbol;
       
 22272             
       
 22273             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22274             {
       
 22275         
       
 22276                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 22277                 return return_type_symbol;
       
 22278                 
       
 22279             }
       
 22280             
       
 22281             
       
 22282             ERROR;
       
 22283         }
       
 22284         
       
 22285     }/*function_lword_to_lint*/
       
 22286     break;
       
 22287 
       
 22288 /****
       
 22289  *LWORD_TO_DINT
       
 22290  */
       
 22291     case function_lword_to_dint :
       
 22292     {
       
 22293         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22294 
       
 22295         {
       
 22296             symbol_c *IN_type_symbol = param_data_type;
       
 22297             last_type_symbol = IN_type_symbol;
       
 22298             
       
 22299             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22300             {
       
 22301         
       
 22302                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 22303                 return return_type_symbol;
       
 22304                 
       
 22305             }
       
 22306             
       
 22307             
       
 22308             ERROR;
       
 22309         }
       
 22310         
       
 22311     }/*function_lword_to_dint*/
       
 22312     break;
       
 22313 
       
 22314 /****
       
 22315  *LWORD_TO_DATE
       
 22316  */
       
 22317     case function_lword_to_date :
       
 22318     {
       
 22319         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22320 
       
 22321         {
       
 22322             symbol_c *IN_type_symbol = param_data_type;
       
 22323             last_type_symbol = IN_type_symbol;
       
 22324             
       
 22325             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22326             {
       
 22327         
       
 22328                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 22329                 return return_type_symbol;
       
 22330                 
       
 22331             }
       
 22332             
       
 22333             
       
 22334             ERROR;
       
 22335         }
       
 22336         
       
 22337     }/*function_lword_to_date*/
       
 22338     break;
       
 22339 
       
 22340 /****
       
 22341  *LWORD_TO_DWORD
       
 22342  */
       
 22343     case function_lword_to_dword :
       
 22344     {
       
 22345         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22346 
       
 22347         {
       
 22348             symbol_c *IN_type_symbol = param_data_type;
       
 22349             last_type_symbol = IN_type_symbol;
       
 22350             
       
 22351             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22352             {
       
 22353         
       
 22354                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 22355                 return return_type_symbol;
       
 22356                 
       
 22357             }
       
 22358             
       
 22359             
       
 22360             ERROR;
       
 22361         }
       
 22362         
       
 22363     }/*function_lword_to_dword*/
       
 22364     break;
       
 22365 
       
 22366 /****
       
 22367  *LWORD_TO_DT
       
 22368  */
       
 22369     case function_lword_to_dt :
       
 22370     {
       
 22371         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22372 
       
 22373         {
       
 22374             symbol_c *IN_type_symbol = param_data_type;
       
 22375             last_type_symbol = IN_type_symbol;
       
 22376             
       
 22377             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22378             {
       
 22379         
       
 22380                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 22381                 return return_type_symbol;
       
 22382                 
       
 22383             }
       
 22384             
       
 22385             
       
 22386             ERROR;
       
 22387         }
       
 22388         
       
 22389     }/*function_lword_to_dt*/
       
 22390     break;
       
 22391 
       
 22392 /****
       
 22393  *LWORD_TO_TOD
       
 22394  */
       
 22395     case function_lword_to_tod :
       
 22396     {
       
 22397         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22398 
       
 22399         {
       
 22400             symbol_c *IN_type_symbol = param_data_type;
       
 22401             last_type_symbol = IN_type_symbol;
       
 22402             
       
 22403             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22404             {
       
 22405         
       
 22406                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 22407                 return return_type_symbol;
       
 22408                 
       
 22409             }
       
 22410             
       
 22411             
       
 22412             ERROR;
       
 22413         }
       
 22414         
       
 22415     }/*function_lword_to_tod*/
       
 22416     break;
       
 22417 
       
 22418 /****
       
 22419  *LWORD_TO_UDINT
       
 22420  */
       
 22421     case function_lword_to_udint :
       
 22422     {
       
 22423         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22424 
       
 22425         {
       
 22426             symbol_c *IN_type_symbol = param_data_type;
       
 22427             last_type_symbol = IN_type_symbol;
       
 22428             
       
 22429             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22430             {
       
 22431         
       
 22432                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 22433                 return return_type_symbol;
       
 22434                 
       
 22435             }
       
 22436             
       
 22437             
       
 22438             ERROR;
       
 22439         }
       
 22440         
       
 22441     }/*function_lword_to_udint*/
       
 22442     break;
       
 22443 
       
 22444 /****
       
 22445  *LWORD_TO_WORD
       
 22446  */
       
 22447     case function_lword_to_word :
       
 22448     {
       
 22449         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22450 
       
 22451         {
       
 22452             symbol_c *IN_type_symbol = param_data_type;
       
 22453             last_type_symbol = IN_type_symbol;
       
 22454             
       
 22455             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22456             {
       
 22457         
       
 22458                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 22459                 return return_type_symbol;
       
 22460                 
       
 22461             }
       
 22462             
       
 22463             
       
 22464             ERROR;
       
 22465         }
       
 22466         
       
 22467     }/*function_lword_to_word*/
       
 22468     break;
       
 22469 
       
 22470 /****
       
 22471  *LWORD_TO_STRING
       
 22472  */
       
 22473     case function_lword_to_string :
       
 22474     {
       
 22475         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22476 
       
 22477         {
       
 22478             symbol_c *IN_type_symbol = param_data_type;
       
 22479             last_type_symbol = IN_type_symbol;
       
 22480             
       
 22481             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22482             {
       
 22483         
       
 22484                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 22485                 return return_type_symbol;
       
 22486                 
       
 22487             }
       
 22488             
       
 22489             
       
 22490             ERROR;
       
 22491         }
       
 22492         
       
 22493     }/*function_lword_to_string*/
       
 22494     break;
       
 22495 
       
 22496 /****
       
 22497  *LWORD_TO_UINT
       
 22498  */
       
 22499     case function_lword_to_uint :
       
 22500     {
       
 22501         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22502 
       
 22503         {
       
 22504             symbol_c *IN_type_symbol = param_data_type;
       
 22505             last_type_symbol = IN_type_symbol;
       
 22506             
       
 22507             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22508             {
       
 22509         
       
 22510                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 22511                 return return_type_symbol;
       
 22512                 
       
 22513             }
       
 22514             
       
 22515             
       
 22516             ERROR;
       
 22517         }
       
 22518         
       
 22519     }/*function_lword_to_uint*/
       
 22520     break;
       
 22521 
       
 22522 /****
       
 22523  *LWORD_TO_LREAL
       
 22524  */
       
 22525     case function_lword_to_lreal :
       
 22526     {
       
 22527         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22528 
       
 22529         {
       
 22530             symbol_c *IN_type_symbol = param_data_type;
       
 22531             last_type_symbol = IN_type_symbol;
       
 22532             
       
 22533             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22534             {
       
 22535         
       
 22536                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 22537                 return return_type_symbol;
       
 22538                 
       
 22539             }
       
 22540             
       
 22541             
       
 22542             ERROR;
       
 22543         }
       
 22544         
       
 22545     }/*function_lword_to_lreal*/
       
 22546     break;
       
 22547 
       
 22548 /****
       
 22549  *LWORD_TO_BYTE
       
 22550  */
       
 22551     case function_lword_to_byte :
       
 22552     {
       
 22553         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22554 
       
 22555         {
       
 22556             symbol_c *IN_type_symbol = param_data_type;
       
 22557             last_type_symbol = IN_type_symbol;
       
 22558             
       
 22559             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22560             {
       
 22561         
       
 22562                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 22563                 return return_type_symbol;
       
 22564                 
       
 22565             }
       
 22566             
       
 22567             
       
 22568             ERROR;
       
 22569         }
       
 22570         
       
 22571     }/*function_lword_to_byte*/
       
 22572     break;
       
 22573 
       
 22574 /****
       
 22575  *LWORD_TO_USINT
       
 22576  */
       
 22577     case function_lword_to_usint :
       
 22578     {
       
 22579         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22580 
       
 22581         {
       
 22582             symbol_c *IN_type_symbol = param_data_type;
       
 22583             last_type_symbol = IN_type_symbol;
       
 22584             
       
 22585             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22586             {
       
 22587         
       
 22588                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 22589                 return return_type_symbol;
       
 22590                 
       
 22591             }
       
 22592             
       
 22593             
       
 22594             ERROR;
       
 22595         }
       
 22596         
       
 22597     }/*function_lword_to_usint*/
       
 22598     break;
       
 22599 
       
 22600 /****
       
 22601  *LWORD_TO_ULINT
       
 22602  */
       
 22603     case function_lword_to_ulint :
       
 22604     {
       
 22605         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22606 
       
 22607         {
       
 22608             symbol_c *IN_type_symbol = param_data_type;
       
 22609             last_type_symbol = IN_type_symbol;
       
 22610             
       
 22611             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22612             {
       
 22613         
       
 22614                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 22615                 return return_type_symbol;
       
 22616                 
       
 22617             }
       
 22618             
       
 22619             
       
 22620             ERROR;
       
 22621         }
       
 22622         
       
 22623     }/*function_lword_to_ulint*/
       
 22624     break;
       
 22625 
       
 22626 /****
       
 22627  *LWORD_TO_BOOL
       
 22628  */
       
 22629     case function_lword_to_bool :
       
 22630     {
       
 22631         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22632 
       
 22633         {
       
 22634             symbol_c *IN_type_symbol = param_data_type;
       
 22635             last_type_symbol = IN_type_symbol;
       
 22636             
       
 22637             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22638             {
       
 22639         
       
 22640                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 22641                 return return_type_symbol;
       
 22642                 
       
 22643             }
       
 22644             
       
 22645             
       
 22646             ERROR;
       
 22647         }
       
 22648         
       
 22649     }/*function_lword_to_bool*/
       
 22650     break;
       
 22651 
       
 22652 /****
       
 22653  *LWORD_TO_TIME
       
 22654  */
       
 22655     case function_lword_to_time :
       
 22656     {
       
 22657         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22658 
       
 22659         {
       
 22660             symbol_c *IN_type_symbol = param_data_type;
       
 22661             last_type_symbol = IN_type_symbol;
       
 22662             
       
 22663             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22664             {
       
 22665         
       
 22666                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 22667                 return return_type_symbol;
       
 22668                 
       
 22669             }
       
 22670             
       
 22671             
       
 22672             ERROR;
       
 22673         }
       
 22674         
       
 22675     }/*function_lword_to_time*/
       
 22676     break;
       
 22677 
       
 22678 /****
       
 22679  *LWORD_TO_INT
       
 22680  */
       
 22681     case function_lword_to_int :
       
 22682     {
       
 22683         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 22684 
       
 22685         {
       
 22686             symbol_c *IN_type_symbol = param_data_type;
       
 22687             last_type_symbol = IN_type_symbol;
       
 22688             
       
 22689             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 22690             {
       
 22691         
       
 22692                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 22693                 return return_type_symbol;
       
 22694                 
       
 22695             }
       
 22696             
       
 22697             
       
 22698             ERROR;
       
 22699         }
       
 22700         
       
 22701     }/*function_lword_to_int*/
       
 22702     break;
       
 22703 
       
 22704 /****
       
 22705  *UINT_TO_REAL
       
 22706  */
       
 22707     case function_uint_to_real :
       
 22708     {
       
 22709         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22710 
       
 22711         {
       
 22712             symbol_c *IN_type_symbol = param_data_type;
       
 22713             last_type_symbol = IN_type_symbol;
       
 22714             
       
 22715             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22716             {
       
 22717         
       
 22718                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 22719                 return return_type_symbol;
       
 22720                 
       
 22721             }
       
 22722             
       
 22723             
       
 22724             ERROR;
       
 22725         }
       
 22726         
       
 22727     }/*function_uint_to_real*/
       
 22728     break;
       
 22729 
       
 22730 /****
       
 22731  *UINT_TO_SINT
       
 22732  */
       
 22733     case function_uint_to_sint :
       
 22734     {
       
 22735         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22736 
       
 22737         {
       
 22738             symbol_c *IN_type_symbol = param_data_type;
       
 22739             last_type_symbol = IN_type_symbol;
       
 22740             
       
 22741             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22742             {
       
 22743         
       
 22744                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 22745                 return return_type_symbol;
       
 22746                 
       
 22747             }
       
 22748             
       
 22749             
       
 22750             ERROR;
       
 22751         }
       
 22752         
       
 22753     }/*function_uint_to_sint*/
       
 22754     break;
       
 22755 
       
 22756 /****
       
 22757  *UINT_TO_LINT
       
 22758  */
       
 22759     case function_uint_to_lint :
       
 22760     {
       
 22761         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22762 
       
 22763         {
       
 22764             symbol_c *IN_type_symbol = param_data_type;
       
 22765             last_type_symbol = IN_type_symbol;
       
 22766             
       
 22767             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22768             {
       
 22769         
       
 22770                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 22771                 return return_type_symbol;
       
 22772                 
       
 22773             }
       
 22774             
       
 22775             
       
 22776             ERROR;
       
 22777         }
       
 22778         
       
 22779     }/*function_uint_to_lint*/
       
 22780     break;
       
 22781 
       
 22782 /****
       
 22783  *UINT_TO_DINT
       
 22784  */
       
 22785     case function_uint_to_dint :
       
 22786     {
       
 22787         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22788 
       
 22789         {
       
 22790             symbol_c *IN_type_symbol = param_data_type;
       
 22791             last_type_symbol = IN_type_symbol;
       
 22792             
       
 22793             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22794             {
       
 22795         
       
 22796                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 22797                 return return_type_symbol;
       
 22798                 
       
 22799             }
       
 22800             
       
 22801             
       
 22802             ERROR;
       
 22803         }
       
 22804         
       
 22805     }/*function_uint_to_dint*/
       
 22806     break;
       
 22807 
       
 22808 /****
       
 22809  *UINT_TO_DATE
       
 22810  */
       
 22811     case function_uint_to_date :
       
 22812     {
       
 22813         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22814 
       
 22815         {
       
 22816             symbol_c *IN_type_symbol = param_data_type;
       
 22817             last_type_symbol = IN_type_symbol;
       
 22818             
       
 22819             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22820             {
       
 22821         
       
 22822                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 22823                 return return_type_symbol;
       
 22824                 
       
 22825             }
       
 22826             
       
 22827             
       
 22828             ERROR;
       
 22829         }
       
 22830         
       
 22831     }/*function_uint_to_date*/
       
 22832     break;
       
 22833 
       
 22834 /****
       
 22835  *UINT_TO_DWORD
       
 22836  */
       
 22837     case function_uint_to_dword :
       
 22838     {
       
 22839         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22840 
       
 22841         {
       
 22842             symbol_c *IN_type_symbol = param_data_type;
       
 22843             last_type_symbol = IN_type_symbol;
       
 22844             
       
 22845             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22846             {
       
 22847         
       
 22848                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 22849                 return return_type_symbol;
       
 22850                 
       
 22851             }
       
 22852             
       
 22853             
       
 22854             ERROR;
       
 22855         }
       
 22856         
       
 22857     }/*function_uint_to_dword*/
       
 22858     break;
       
 22859 
       
 22860 /****
       
 22861  *UINT_TO_DT
       
 22862  */
       
 22863     case function_uint_to_dt :
       
 22864     {
       
 22865         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22866 
       
 22867         {
       
 22868             symbol_c *IN_type_symbol = param_data_type;
       
 22869             last_type_symbol = IN_type_symbol;
       
 22870             
       
 22871             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22872             {
       
 22873         
       
 22874                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 22875                 return return_type_symbol;
       
 22876                 
       
 22877             }
       
 22878             
       
 22879             
       
 22880             ERROR;
       
 22881         }
       
 22882         
       
 22883     }/*function_uint_to_dt*/
       
 22884     break;
       
 22885 
       
 22886 /****
       
 22887  *UINT_TO_TOD
       
 22888  */
       
 22889     case function_uint_to_tod :
       
 22890     {
       
 22891         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22892 
       
 22893         {
       
 22894             symbol_c *IN_type_symbol = param_data_type;
       
 22895             last_type_symbol = IN_type_symbol;
       
 22896             
       
 22897             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22898             {
       
 22899         
       
 22900                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 22901                 return return_type_symbol;
       
 22902                 
       
 22903             }
       
 22904             
       
 22905             
       
 22906             ERROR;
       
 22907         }
       
 22908         
       
 22909     }/*function_uint_to_tod*/
       
 22910     break;
       
 22911 
       
 22912 /****
       
 22913  *UINT_TO_UDINT
       
 22914  */
       
 22915     case function_uint_to_udint :
       
 22916     {
       
 22917         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22918 
       
 22919         {
       
 22920             symbol_c *IN_type_symbol = param_data_type;
       
 22921             last_type_symbol = IN_type_symbol;
       
 22922             
       
 22923             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22924             {
       
 22925         
       
 22926                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 22927                 return return_type_symbol;
       
 22928                 
       
 22929             }
       
 22930             
       
 22931             
       
 22932             ERROR;
       
 22933         }
       
 22934         
       
 22935     }/*function_uint_to_udint*/
       
 22936     break;
       
 22937 
       
 22938 /****
       
 22939  *UINT_TO_WORD
       
 22940  */
       
 22941     case function_uint_to_word :
       
 22942     {
       
 22943         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22944 
       
 22945         {
       
 22946             symbol_c *IN_type_symbol = param_data_type;
       
 22947             last_type_symbol = IN_type_symbol;
       
 22948             
       
 22949             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22950             {
       
 22951         
       
 22952                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 22953                 return return_type_symbol;
       
 22954                 
       
 22955             }
       
 22956             
       
 22957             
       
 22958             ERROR;
       
 22959         }
       
 22960         
       
 22961     }/*function_uint_to_word*/
       
 22962     break;
       
 22963 
       
 22964 /****
       
 22965  *UINT_TO_STRING
       
 22966  */
       
 22967     case function_uint_to_string :
       
 22968     {
       
 22969         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22970 
       
 22971         {
       
 22972             symbol_c *IN_type_symbol = param_data_type;
       
 22973             last_type_symbol = IN_type_symbol;
       
 22974             
       
 22975             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 22976             {
       
 22977         
       
 22978                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 22979                 return return_type_symbol;
       
 22980                 
       
 22981             }
       
 22982             
       
 22983             
       
 22984             ERROR;
       
 22985         }
       
 22986         
       
 22987     }/*function_uint_to_string*/
       
 22988     break;
       
 22989 
       
 22990 /****
       
 22991  *UINT_TO_LWORD
       
 22992  */
       
 22993     case function_uint_to_lword :
       
 22994     {
       
 22995         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 22996 
       
 22997         {
       
 22998             symbol_c *IN_type_symbol = param_data_type;
       
 22999             last_type_symbol = IN_type_symbol;
       
 23000             
       
 23001             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23002             {
       
 23003         
       
 23004                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 23005                 return return_type_symbol;
       
 23006                 
       
 23007             }
       
 23008             
       
 23009             
       
 23010             ERROR;
       
 23011         }
       
 23012         
       
 23013     }/*function_uint_to_lword*/
       
 23014     break;
       
 23015 
       
 23016 /****
       
 23017  *UINT_TO_LREAL
       
 23018  */
       
 23019     case function_uint_to_lreal :
       
 23020     {
       
 23021         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23022 
       
 23023         {
       
 23024             symbol_c *IN_type_symbol = param_data_type;
       
 23025             last_type_symbol = IN_type_symbol;
       
 23026             
       
 23027             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23028             {
       
 23029         
       
 23030                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23031                 return return_type_symbol;
       
 23032                 
       
 23033             }
       
 23034             
       
 23035             
       
 23036             ERROR;
       
 23037         }
       
 23038         
       
 23039     }/*function_uint_to_lreal*/
       
 23040     break;
       
 23041 
       
 23042 /****
       
 23043  *UINT_TO_BYTE
       
 23044  */
       
 23045     case function_uint_to_byte :
       
 23046     {
       
 23047         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23048 
       
 23049         {
       
 23050             symbol_c *IN_type_symbol = param_data_type;
       
 23051             last_type_symbol = IN_type_symbol;
       
 23052             
       
 23053             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23054             {
       
 23055         
       
 23056                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 23057                 return return_type_symbol;
       
 23058                 
       
 23059             }
       
 23060             
       
 23061             
       
 23062             ERROR;
       
 23063         }
       
 23064         
       
 23065     }/*function_uint_to_byte*/
       
 23066     break;
       
 23067 
       
 23068 /****
       
 23069  *UINT_TO_USINT
       
 23070  */
       
 23071     case function_uint_to_usint :
       
 23072     {
       
 23073         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23074 
       
 23075         {
       
 23076             symbol_c *IN_type_symbol = param_data_type;
       
 23077             last_type_symbol = IN_type_symbol;
       
 23078             
       
 23079             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23080             {
       
 23081         
       
 23082                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 23083                 return return_type_symbol;
       
 23084                 
       
 23085             }
       
 23086             
       
 23087             
       
 23088             ERROR;
       
 23089         }
       
 23090         
       
 23091     }/*function_uint_to_usint*/
       
 23092     break;
       
 23093 
       
 23094 /****
       
 23095  *UINT_TO_ULINT
       
 23096  */
       
 23097     case function_uint_to_ulint :
       
 23098     {
       
 23099         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23100 
       
 23101         {
       
 23102             symbol_c *IN_type_symbol = param_data_type;
       
 23103             last_type_symbol = IN_type_symbol;
       
 23104             
       
 23105             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23106             {
       
 23107         
       
 23108                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 23109                 return return_type_symbol;
       
 23110                 
       
 23111             }
       
 23112             
       
 23113             
       
 23114             ERROR;
       
 23115         }
       
 23116         
       
 23117     }/*function_uint_to_ulint*/
       
 23118     break;
       
 23119 
       
 23120 /****
       
 23121  *UINT_TO_BOOL
       
 23122  */
       
 23123     case function_uint_to_bool :
       
 23124     {
       
 23125         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23126 
       
 23127         {
       
 23128             symbol_c *IN_type_symbol = param_data_type;
       
 23129             last_type_symbol = IN_type_symbol;
       
 23130             
       
 23131             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23132             {
       
 23133         
       
 23134                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 23135                 return return_type_symbol;
       
 23136                 
       
 23137             }
       
 23138             
       
 23139             
       
 23140             ERROR;
       
 23141         }
       
 23142         
       
 23143     }/*function_uint_to_bool*/
       
 23144     break;
       
 23145 
       
 23146 /****
       
 23147  *UINT_TO_TIME
       
 23148  */
       
 23149     case function_uint_to_time :
       
 23150     {
       
 23151         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23152 
       
 23153         {
       
 23154             symbol_c *IN_type_symbol = param_data_type;
       
 23155             last_type_symbol = IN_type_symbol;
       
 23156             
       
 23157             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23158             {
       
 23159         
       
 23160                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 23161                 return return_type_symbol;
       
 23162                 
       
 23163             }
       
 23164             
       
 23165             
       
 23166             ERROR;
       
 23167         }
       
 23168         
       
 23169     }/*function_uint_to_time*/
       
 23170     break;
       
 23171 
       
 23172 /****
       
 23173  *UINT_TO_INT
       
 23174  */
       
 23175     case function_uint_to_int :
       
 23176     {
       
 23177         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 23178 
       
 23179         {
       
 23180             symbol_c *IN_type_symbol = param_data_type;
       
 23181             last_type_symbol = IN_type_symbol;
       
 23182             
       
 23183             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 23184             {
       
 23185         
       
 23186                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 23187                 return return_type_symbol;
       
 23188                 
       
 23189             }
       
 23190             
       
 23191             
       
 23192             ERROR;
       
 23193         }
       
 23194         
       
 23195     }/*function_uint_to_int*/
       
 23196     break;
       
 23197 
       
 23198 /****
       
 23199  *LREAL_TO_REAL
       
 23200  */
       
 23201     case function_lreal_to_real :
       
 23202     {
       
 23203         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23204 
       
 23205         {
       
 23206             symbol_c *IN_type_symbol = param_data_type;
       
 23207             last_type_symbol = IN_type_symbol;
       
 23208             
       
 23209             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23210             {
       
 23211         
       
 23212                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 23213                 return return_type_symbol;
       
 23214                 
       
 23215             }
       
 23216             
       
 23217             
       
 23218             ERROR;
       
 23219         }
       
 23220         
       
 23221     }/*function_lreal_to_real*/
       
 23222     break;
       
 23223 
       
 23224 /****
       
 23225  *LREAL_TO_SINT
       
 23226  */
       
 23227     case function_lreal_to_sint :
       
 23228     {
       
 23229         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23230 
       
 23231         {
       
 23232             symbol_c *IN_type_symbol = param_data_type;
       
 23233             last_type_symbol = IN_type_symbol;
       
 23234             
       
 23235             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23236             {
       
 23237         
       
 23238                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 23239                 return return_type_symbol;
       
 23240                 
       
 23241             }
       
 23242             
       
 23243             
       
 23244             ERROR;
       
 23245         }
       
 23246         
       
 23247     }/*function_lreal_to_sint*/
       
 23248     break;
       
 23249 
       
 23250 /****
       
 23251  *LREAL_TO_LINT
       
 23252  */
       
 23253     case function_lreal_to_lint :
       
 23254     {
       
 23255         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23256 
       
 23257         {
       
 23258             symbol_c *IN_type_symbol = param_data_type;
       
 23259             last_type_symbol = IN_type_symbol;
       
 23260             
       
 23261             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23262             {
       
 23263         
       
 23264                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 23265                 return return_type_symbol;
       
 23266                 
       
 23267             }
       
 23268             
       
 23269             
       
 23270             ERROR;
       
 23271         }
       
 23272         
       
 23273     }/*function_lreal_to_lint*/
       
 23274     break;
       
 23275 
       
 23276 /****
       
 23277  *LREAL_TO_DINT
       
 23278  */
       
 23279     case function_lreal_to_dint :
       
 23280     {
       
 23281         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23282 
       
 23283         {
       
 23284             symbol_c *IN_type_symbol = param_data_type;
       
 23285             last_type_symbol = IN_type_symbol;
       
 23286             
       
 23287             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23288             {
       
 23289         
       
 23290                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 23291                 return return_type_symbol;
       
 23292                 
       
 23293             }
       
 23294             
       
 23295             
       
 23296             ERROR;
       
 23297         }
       
 23298         
       
 23299     }/*function_lreal_to_dint*/
       
 23300     break;
       
 23301 
       
 23302 /****
       
 23303  *LREAL_TO_DATE
       
 23304  */
       
 23305     case function_lreal_to_date :
       
 23306     {
       
 23307         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23308 
       
 23309         {
       
 23310             symbol_c *IN_type_symbol = param_data_type;
       
 23311             last_type_symbol = IN_type_symbol;
       
 23312             
       
 23313             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23314             {
       
 23315         
       
 23316                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 23317                 return return_type_symbol;
       
 23318                 
       
 23319             }
       
 23320             
       
 23321             
       
 23322             ERROR;
       
 23323         }
       
 23324         
       
 23325     }/*function_lreal_to_date*/
       
 23326     break;
       
 23327 
       
 23328 /****
       
 23329  *LREAL_TO_DWORD
       
 23330  */
       
 23331     case function_lreal_to_dword :
       
 23332     {
       
 23333         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23334 
       
 23335         {
       
 23336             symbol_c *IN_type_symbol = param_data_type;
       
 23337             last_type_symbol = IN_type_symbol;
       
 23338             
       
 23339             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23340             {
       
 23341         
       
 23342                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 23343                 return return_type_symbol;
       
 23344                 
       
 23345             }
       
 23346             
       
 23347             
       
 23348             ERROR;
       
 23349         }
       
 23350         
       
 23351     }/*function_lreal_to_dword*/
       
 23352     break;
       
 23353 
       
 23354 /****
       
 23355  *LREAL_TO_DT
       
 23356  */
       
 23357     case function_lreal_to_dt :
       
 23358     {
       
 23359         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23360 
       
 23361         {
       
 23362             symbol_c *IN_type_symbol = param_data_type;
       
 23363             last_type_symbol = IN_type_symbol;
       
 23364             
       
 23365             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23366             {
       
 23367         
       
 23368                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 23369                 return return_type_symbol;
       
 23370                 
       
 23371             }
       
 23372             
       
 23373             
       
 23374             ERROR;
       
 23375         }
       
 23376         
       
 23377     }/*function_lreal_to_dt*/
       
 23378     break;
       
 23379 
       
 23380 /****
       
 23381  *LREAL_TO_TOD
       
 23382  */
       
 23383     case function_lreal_to_tod :
       
 23384     {
       
 23385         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23386 
       
 23387         {
       
 23388             symbol_c *IN_type_symbol = param_data_type;
       
 23389             last_type_symbol = IN_type_symbol;
       
 23390             
       
 23391             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23392             {
       
 23393         
       
 23394                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 23395                 return return_type_symbol;
       
 23396                 
       
 23397             }
       
 23398             
       
 23399             
       
 23400             ERROR;
       
 23401         }
       
 23402         
       
 23403     }/*function_lreal_to_tod*/
       
 23404     break;
       
 23405 
       
 23406 /****
       
 23407  *LREAL_TO_UDINT
       
 23408  */
       
 23409     case function_lreal_to_udint :
       
 23410     {
       
 23411         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23412 
       
 23413         {
       
 23414             symbol_c *IN_type_symbol = param_data_type;
       
 23415             last_type_symbol = IN_type_symbol;
       
 23416             
       
 23417             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23418             {
       
 23419         
       
 23420                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 23421                 return return_type_symbol;
       
 23422                 
       
 23423             }
       
 23424             
       
 23425             
       
 23426             ERROR;
       
 23427         }
       
 23428         
       
 23429     }/*function_lreal_to_udint*/
       
 23430     break;
       
 23431 
       
 23432 /****
       
 23433  *LREAL_TO_WORD
       
 23434  */
       
 23435     case function_lreal_to_word :
       
 23436     {
       
 23437         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23438 
       
 23439         {
       
 23440             symbol_c *IN_type_symbol = param_data_type;
       
 23441             last_type_symbol = IN_type_symbol;
       
 23442             
       
 23443             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23444             {
       
 23445         
       
 23446                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 23447                 return return_type_symbol;
       
 23448                 
       
 23449             }
       
 23450             
       
 23451             
       
 23452             ERROR;
       
 23453         }
       
 23454         
       
 23455     }/*function_lreal_to_word*/
       
 23456     break;
       
 23457 
       
 23458 /****
       
 23459  *LREAL_TO_STRING
       
 23460  */
       
 23461     case function_lreal_to_string :
       
 23462     {
       
 23463         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23464 
       
 23465         {
       
 23466             symbol_c *IN_type_symbol = param_data_type;
       
 23467             last_type_symbol = IN_type_symbol;
       
 23468             
       
 23469             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23470             {
       
 23471         
       
 23472                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 23473                 return return_type_symbol;
       
 23474                 
       
 23475             }
       
 23476             
       
 23477             
       
 23478             ERROR;
       
 23479         }
       
 23480         
       
 23481     }/*function_lreal_to_string*/
       
 23482     break;
       
 23483 
       
 23484 /****
       
 23485  *LREAL_TO_LWORD
       
 23486  */
       
 23487     case function_lreal_to_lword :
       
 23488     {
       
 23489         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23490 
       
 23491         {
       
 23492             symbol_c *IN_type_symbol = param_data_type;
       
 23493             last_type_symbol = IN_type_symbol;
       
 23494             
       
 23495             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23496             {
       
 23497         
       
 23498                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 23499                 return return_type_symbol;
       
 23500                 
       
 23501             }
       
 23502             
       
 23503             
       
 23504             ERROR;
       
 23505         }
       
 23506         
       
 23507     }/*function_lreal_to_lword*/
       
 23508     break;
       
 23509 
       
 23510 /****
       
 23511  *LREAL_TO_UINT
       
 23512  */
       
 23513     case function_lreal_to_uint :
       
 23514     {
       
 23515         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23516 
       
 23517         {
       
 23518             symbol_c *IN_type_symbol = param_data_type;
       
 23519             last_type_symbol = IN_type_symbol;
       
 23520             
       
 23521             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23522             {
       
 23523         
       
 23524                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 23525                 return return_type_symbol;
       
 23526                 
       
 23527             }
       
 23528             
       
 23529             
       
 23530             ERROR;
       
 23531         }
       
 23532         
       
 23533     }/*function_lreal_to_uint*/
       
 23534     break;
       
 23535 
       
 23536 /****
       
 23537  *LREAL_TO_BYTE
       
 23538  */
       
 23539     case function_lreal_to_byte :
       
 23540     {
       
 23541         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23542 
       
 23543         {
       
 23544             symbol_c *IN_type_symbol = param_data_type;
       
 23545             last_type_symbol = IN_type_symbol;
       
 23546             
       
 23547             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23548             {
       
 23549         
       
 23550                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 23551                 return return_type_symbol;
       
 23552                 
       
 23553             }
       
 23554             
       
 23555             
       
 23556             ERROR;
       
 23557         }
       
 23558         
       
 23559     }/*function_lreal_to_byte*/
       
 23560     break;
       
 23561 
       
 23562 /****
       
 23563  *LREAL_TO_USINT
       
 23564  */
       
 23565     case function_lreal_to_usint :
       
 23566     {
       
 23567         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23568 
       
 23569         {
       
 23570             symbol_c *IN_type_symbol = param_data_type;
       
 23571             last_type_symbol = IN_type_symbol;
       
 23572             
       
 23573             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23574             {
       
 23575         
       
 23576                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 23577                 return return_type_symbol;
       
 23578                 
       
 23579             }
       
 23580             
       
 23581             
       
 23582             ERROR;
       
 23583         }
       
 23584         
       
 23585     }/*function_lreal_to_usint*/
       
 23586     break;
       
 23587 
       
 23588 /****
       
 23589  *LREAL_TO_ULINT
       
 23590  */
       
 23591     case function_lreal_to_ulint :
       
 23592     {
       
 23593         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23594 
       
 23595         {
       
 23596             symbol_c *IN_type_symbol = param_data_type;
       
 23597             last_type_symbol = IN_type_symbol;
       
 23598             
       
 23599             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23600             {
       
 23601         
       
 23602                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 23603                 return return_type_symbol;
       
 23604                 
       
 23605             }
       
 23606             
       
 23607             
       
 23608             ERROR;
       
 23609         }
       
 23610         
       
 23611     }/*function_lreal_to_ulint*/
       
 23612     break;
       
 23613 
       
 23614 /****
       
 23615  *LREAL_TO_BOOL
       
 23616  */
       
 23617     case function_lreal_to_bool :
       
 23618     {
       
 23619         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23620 
       
 23621         {
       
 23622             symbol_c *IN_type_symbol = param_data_type;
       
 23623             last_type_symbol = IN_type_symbol;
       
 23624             
       
 23625             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23626             {
       
 23627         
       
 23628                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 23629                 return return_type_symbol;
       
 23630                 
       
 23631             }
       
 23632             
       
 23633             
       
 23634             ERROR;
       
 23635         }
       
 23636         
       
 23637     }/*function_lreal_to_bool*/
       
 23638     break;
       
 23639 
       
 23640 /****
       
 23641  *LREAL_TO_TIME
       
 23642  */
       
 23643     case function_lreal_to_time :
       
 23644     {
       
 23645         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23646 
       
 23647         {
       
 23648             symbol_c *IN_type_symbol = param_data_type;
       
 23649             last_type_symbol = IN_type_symbol;
       
 23650             
       
 23651             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23652             {
       
 23653         
       
 23654                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 23655                 return return_type_symbol;
       
 23656                 
       
 23657             }
       
 23658             
       
 23659             
       
 23660             ERROR;
       
 23661         }
       
 23662         
       
 23663     }/*function_lreal_to_time*/
       
 23664     break;
       
 23665 
       
 23666 /****
       
 23667  *LREAL_TO_INT
       
 23668  */
       
 23669     case function_lreal_to_int :
       
 23670     {
       
 23671         symbol_c *last_type_symbol = &search_constant_type_c::lreal_type_name;
       
 23672 
       
 23673         {
       
 23674             symbol_c *IN_type_symbol = param_data_type;
       
 23675             last_type_symbol = IN_type_symbol;
       
 23676             
       
 23677             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
       
 23678             {
       
 23679         
       
 23680                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 23681                 return return_type_symbol;
       
 23682                 
       
 23683             }
       
 23684             
       
 23685             
       
 23686             ERROR;
       
 23687         }
       
 23688         
       
 23689     }/*function_lreal_to_int*/
       
 23690     break;
       
 23691 
       
 23692 /****
       
 23693  *BYTE_TO_REAL
       
 23694  */
       
 23695     case function_byte_to_real :
       
 23696     {
       
 23697         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23698 
       
 23699         {
       
 23700             symbol_c *IN_type_symbol = param_data_type;
       
 23701             last_type_symbol = IN_type_symbol;
       
 23702             
       
 23703             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23704             {
       
 23705         
       
 23706                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 23707                 return return_type_symbol;
       
 23708                 
       
 23709             }
       
 23710             
       
 23711             
       
 23712             ERROR;
       
 23713         }
       
 23714         
       
 23715     }/*function_byte_to_real*/
       
 23716     break;
       
 23717 
       
 23718 /****
       
 23719  *BYTE_TO_SINT
       
 23720  */
       
 23721     case function_byte_to_sint :
       
 23722     {
       
 23723         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23724 
       
 23725         {
       
 23726             symbol_c *IN_type_symbol = param_data_type;
       
 23727             last_type_symbol = IN_type_symbol;
       
 23728             
       
 23729             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23730             {
       
 23731         
       
 23732                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 23733                 return return_type_symbol;
       
 23734                 
       
 23735             }
       
 23736             
       
 23737             
       
 23738             ERROR;
       
 23739         }
       
 23740         
       
 23741     }/*function_byte_to_sint*/
       
 23742     break;
       
 23743 
       
 23744 /****
       
 23745  *BYTE_TO_LINT
       
 23746  */
       
 23747     case function_byte_to_lint :
       
 23748     {
       
 23749         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23750 
       
 23751         {
       
 23752             symbol_c *IN_type_symbol = param_data_type;
       
 23753             last_type_symbol = IN_type_symbol;
       
 23754             
       
 23755             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23756             {
       
 23757         
       
 23758                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 23759                 return return_type_symbol;
       
 23760                 
       
 23761             }
       
 23762             
       
 23763             
       
 23764             ERROR;
       
 23765         }
       
 23766         
       
 23767     }/*function_byte_to_lint*/
       
 23768     break;
       
 23769 
       
 23770 /****
       
 23771  *BYTE_TO_DINT
       
 23772  */
       
 23773     case function_byte_to_dint :
       
 23774     {
       
 23775         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23776 
       
 23777         {
       
 23778             symbol_c *IN_type_symbol = param_data_type;
       
 23779             last_type_symbol = IN_type_symbol;
       
 23780             
       
 23781             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23782             {
       
 23783         
       
 23784                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 23785                 return return_type_symbol;
       
 23786                 
       
 23787             }
       
 23788             
       
 23789             
       
 23790             ERROR;
       
 23791         }
       
 23792         
       
 23793     }/*function_byte_to_dint*/
       
 23794     break;
       
 23795 
       
 23796 /****
       
 23797  *BYTE_TO_DATE
       
 23798  */
       
 23799     case function_byte_to_date :
       
 23800     {
       
 23801         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23802 
       
 23803         {
       
 23804             symbol_c *IN_type_symbol = param_data_type;
       
 23805             last_type_symbol = IN_type_symbol;
       
 23806             
       
 23807             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23808             {
       
 23809         
       
 23810                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 23811                 return return_type_symbol;
       
 23812                 
       
 23813             }
       
 23814             
       
 23815             
       
 23816             ERROR;
       
 23817         }
       
 23818         
       
 23819     }/*function_byte_to_date*/
       
 23820     break;
       
 23821 
       
 23822 /****
       
 23823  *BYTE_TO_DWORD
       
 23824  */
       
 23825     case function_byte_to_dword :
       
 23826     {
       
 23827         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23828 
       
 23829         {
       
 23830             symbol_c *IN_type_symbol = param_data_type;
       
 23831             last_type_symbol = IN_type_symbol;
       
 23832             
       
 23833             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23834             {
       
 23835         
       
 23836                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 23837                 return return_type_symbol;
       
 23838                 
       
 23839             }
       
 23840             
       
 23841             
       
 23842             ERROR;
       
 23843         }
       
 23844         
       
 23845     }/*function_byte_to_dword*/
       
 23846     break;
       
 23847 
       
 23848 /****
       
 23849  *BYTE_TO_DT
       
 23850  */
       
 23851     case function_byte_to_dt :
       
 23852     {
       
 23853         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23854 
       
 23855         {
       
 23856             symbol_c *IN_type_symbol = param_data_type;
       
 23857             last_type_symbol = IN_type_symbol;
       
 23858             
       
 23859             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23860             {
       
 23861         
       
 23862                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 23863                 return return_type_symbol;
       
 23864                 
       
 23865             }
       
 23866             
       
 23867             
       
 23868             ERROR;
       
 23869         }
       
 23870         
       
 23871     }/*function_byte_to_dt*/
       
 23872     break;
       
 23873 
       
 23874 /****
       
 23875  *BYTE_TO_TOD
       
 23876  */
       
 23877     case function_byte_to_tod :
       
 23878     {
       
 23879         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23880 
       
 23881         {
       
 23882             symbol_c *IN_type_symbol = param_data_type;
       
 23883             last_type_symbol = IN_type_symbol;
       
 23884             
       
 23885             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23886             {
       
 23887         
       
 23888                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 23889                 return return_type_symbol;
       
 23890                 
       
 23891             }
       
 23892             
       
 23893             
       
 23894             ERROR;
       
 23895         }
       
 23896         
       
 23897     }/*function_byte_to_tod*/
       
 23898     break;
       
 23899 
       
 23900 /****
       
 23901  *BYTE_TO_UDINT
       
 23902  */
       
 23903     case function_byte_to_udint :
       
 23904     {
       
 23905         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23906 
       
 23907         {
       
 23908             symbol_c *IN_type_symbol = param_data_type;
       
 23909             last_type_symbol = IN_type_symbol;
       
 23910             
       
 23911             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23912             {
       
 23913         
       
 23914                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 23915                 return return_type_symbol;
       
 23916                 
       
 23917             }
       
 23918             
       
 23919             
       
 23920             ERROR;
       
 23921         }
       
 23922         
       
 23923     }/*function_byte_to_udint*/
       
 23924     break;
       
 23925 
       
 23926 /****
       
 23927  *BYTE_TO_WORD
       
 23928  */
       
 23929     case function_byte_to_word :
       
 23930     {
       
 23931         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23932 
       
 23933         {
       
 23934             symbol_c *IN_type_symbol = param_data_type;
       
 23935             last_type_symbol = IN_type_symbol;
       
 23936             
       
 23937             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23938             {
       
 23939         
       
 23940                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 23941                 return return_type_symbol;
       
 23942                 
       
 23943             }
       
 23944             
       
 23945             
       
 23946             ERROR;
       
 23947         }
       
 23948         
       
 23949     }/*function_byte_to_word*/
       
 23950     break;
       
 23951 
       
 23952 /****
       
 23953  *BYTE_TO_STRING
       
 23954  */
       
 23955     case function_byte_to_string :
       
 23956     {
       
 23957         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23958 
       
 23959         {
       
 23960             symbol_c *IN_type_symbol = param_data_type;
       
 23961             last_type_symbol = IN_type_symbol;
       
 23962             
       
 23963             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23964             {
       
 23965         
       
 23966                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 23967                 return return_type_symbol;
       
 23968                 
       
 23969             }
       
 23970             
       
 23971             
       
 23972             ERROR;
       
 23973         }
       
 23974         
       
 23975     }/*function_byte_to_string*/
       
 23976     break;
       
 23977 
       
 23978 /****
       
 23979  *BYTE_TO_LWORD
       
 23980  */
       
 23981     case function_byte_to_lword :
       
 23982     {
       
 23983         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 23984 
       
 23985         {
       
 23986             symbol_c *IN_type_symbol = param_data_type;
       
 23987             last_type_symbol = IN_type_symbol;
       
 23988             
       
 23989             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 23990             {
       
 23991         
       
 23992                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 23993                 return return_type_symbol;
       
 23994                 
       
 23995             }
       
 23996             
       
 23997             
       
 23998             ERROR;
       
 23999         }
       
 24000         
       
 24001     }/*function_byte_to_lword*/
       
 24002     break;
       
 24003 
       
 24004 /****
       
 24005  *BYTE_TO_UINT
       
 24006  */
       
 24007     case function_byte_to_uint :
       
 24008     {
       
 24009         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24010 
       
 24011         {
       
 24012             symbol_c *IN_type_symbol = param_data_type;
       
 24013             last_type_symbol = IN_type_symbol;
       
 24014             
       
 24015             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24016             {
       
 24017         
       
 24018                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 24019                 return return_type_symbol;
       
 24020                 
       
 24021             }
       
 24022             
       
 24023             
       
 24024             ERROR;
       
 24025         }
       
 24026         
       
 24027     }/*function_byte_to_uint*/
       
 24028     break;
       
 24029 
       
 24030 /****
       
 24031  *BYTE_TO_LREAL
       
 24032  */
       
 24033     case function_byte_to_lreal :
       
 24034     {
       
 24035         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24036 
       
 24037         {
       
 24038             symbol_c *IN_type_symbol = param_data_type;
       
 24039             last_type_symbol = IN_type_symbol;
       
 24040             
       
 24041             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24042             {
       
 24043         
       
 24044                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 24045                 return return_type_symbol;
       
 24046                 
       
 24047             }
       
 24048             
       
 24049             
       
 24050             ERROR;
       
 24051         }
       
 24052         
       
 24053     }/*function_byte_to_lreal*/
       
 24054     break;
       
 24055 
       
 24056 /****
       
 24057  *BYTE_TO_USINT
       
 24058  */
       
 24059     case function_byte_to_usint :
       
 24060     {
       
 24061         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24062 
       
 24063         {
       
 24064             symbol_c *IN_type_symbol = param_data_type;
       
 24065             last_type_symbol = IN_type_symbol;
       
 24066             
       
 24067             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24068             {
       
 24069         
       
 24070                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 24071                 return return_type_symbol;
       
 24072                 
       
 24073             }
       
 24074             
       
 24075             
       
 24076             ERROR;
       
 24077         }
       
 24078         
       
 24079     }/*function_byte_to_usint*/
       
 24080     break;
       
 24081 
       
 24082 /****
       
 24083  *BYTE_TO_ULINT
       
 24084  */
       
 24085     case function_byte_to_ulint :
       
 24086     {
       
 24087         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24088 
       
 24089         {
       
 24090             symbol_c *IN_type_symbol = param_data_type;
       
 24091             last_type_symbol = IN_type_symbol;
       
 24092             
       
 24093             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24094             {
       
 24095         
       
 24096                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24097                 return return_type_symbol;
       
 24098                 
       
 24099             }
       
 24100             
       
 24101             
       
 24102             ERROR;
       
 24103         }
       
 24104         
       
 24105     }/*function_byte_to_ulint*/
       
 24106     break;
       
 24107 
       
 24108 /****
       
 24109  *BYTE_TO_BOOL
       
 24110  */
       
 24111     case function_byte_to_bool :
       
 24112     {
       
 24113         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24114 
       
 24115         {
       
 24116             symbol_c *IN_type_symbol = param_data_type;
       
 24117             last_type_symbol = IN_type_symbol;
       
 24118             
       
 24119             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24120             {
       
 24121         
       
 24122                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 24123                 return return_type_symbol;
       
 24124                 
       
 24125             }
       
 24126             
       
 24127             
       
 24128             ERROR;
       
 24129         }
       
 24130         
       
 24131     }/*function_byte_to_bool*/
       
 24132     break;
       
 24133 
       
 24134 /****
       
 24135  *BYTE_TO_TIME
       
 24136  */
       
 24137     case function_byte_to_time :
       
 24138     {
       
 24139         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24140 
       
 24141         {
       
 24142             symbol_c *IN_type_symbol = param_data_type;
       
 24143             last_type_symbol = IN_type_symbol;
       
 24144             
       
 24145             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24146             {
       
 24147         
       
 24148                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 24149                 return return_type_symbol;
       
 24150                 
       
 24151             }
       
 24152             
       
 24153             
       
 24154             ERROR;
       
 24155         }
       
 24156         
       
 24157     }/*function_byte_to_time*/
       
 24158     break;
       
 24159 
       
 24160 /****
       
 24161  *BYTE_TO_INT
       
 24162  */
       
 24163     case function_byte_to_int :
       
 24164     {
       
 24165         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 24166 
       
 24167         {
       
 24168             symbol_c *IN_type_symbol = param_data_type;
       
 24169             last_type_symbol = IN_type_symbol;
       
 24170             
       
 24171             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 24172             {
       
 24173         
       
 24174                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 24175                 return return_type_symbol;
       
 24176                 
       
 24177             }
       
 24178             
       
 24179             
       
 24180             ERROR;
       
 24181         }
       
 24182         
       
 24183     }/*function_byte_to_int*/
       
 24184     break;
       
 24185 
       
 24186 /****
       
 24187  *USINT_TO_REAL
       
 24188  */
       
 24189     case function_usint_to_real :
       
 24190     {
       
 24191         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24192 
       
 24193         {
       
 24194             symbol_c *IN_type_symbol = param_data_type;
       
 24195             last_type_symbol = IN_type_symbol;
       
 24196             
       
 24197             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24198             {
       
 24199         
       
 24200                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 24201                 return return_type_symbol;
       
 24202                 
       
 24203             }
       
 24204             
       
 24205             
       
 24206             ERROR;
       
 24207         }
       
 24208         
       
 24209     }/*function_usint_to_real*/
       
 24210     break;
       
 24211 
       
 24212 /****
       
 24213  *USINT_TO_SINT
       
 24214  */
       
 24215     case function_usint_to_sint :
       
 24216     {
       
 24217         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24218 
       
 24219         {
       
 24220             symbol_c *IN_type_symbol = param_data_type;
       
 24221             last_type_symbol = IN_type_symbol;
       
 24222             
       
 24223             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24224             {
       
 24225         
       
 24226                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 24227                 return return_type_symbol;
       
 24228                 
       
 24229             }
       
 24230             
       
 24231             
       
 24232             ERROR;
       
 24233         }
       
 24234         
       
 24235     }/*function_usint_to_sint*/
       
 24236     break;
       
 24237 
       
 24238 /****
       
 24239  *USINT_TO_LINT
       
 24240  */
       
 24241     case function_usint_to_lint :
       
 24242     {
       
 24243         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24244 
       
 24245         {
       
 24246             symbol_c *IN_type_symbol = param_data_type;
       
 24247             last_type_symbol = IN_type_symbol;
       
 24248             
       
 24249             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24250             {
       
 24251         
       
 24252                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 24253                 return return_type_symbol;
       
 24254                 
       
 24255             }
       
 24256             
       
 24257             
       
 24258             ERROR;
       
 24259         }
       
 24260         
       
 24261     }/*function_usint_to_lint*/
       
 24262     break;
       
 24263 
       
 24264 /****
       
 24265  *USINT_TO_DINT
       
 24266  */
       
 24267     case function_usint_to_dint :
       
 24268     {
       
 24269         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24270 
       
 24271         {
       
 24272             symbol_c *IN_type_symbol = param_data_type;
       
 24273             last_type_symbol = IN_type_symbol;
       
 24274             
       
 24275             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24276             {
       
 24277         
       
 24278                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 24279                 return return_type_symbol;
       
 24280                 
       
 24281             }
       
 24282             
       
 24283             
       
 24284             ERROR;
       
 24285         }
       
 24286         
       
 24287     }/*function_usint_to_dint*/
       
 24288     break;
       
 24289 
       
 24290 /****
       
 24291  *USINT_TO_DATE
       
 24292  */
       
 24293     case function_usint_to_date :
       
 24294     {
       
 24295         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24296 
       
 24297         {
       
 24298             symbol_c *IN_type_symbol = param_data_type;
       
 24299             last_type_symbol = IN_type_symbol;
       
 24300             
       
 24301             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24302             {
       
 24303         
       
 24304                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 24305                 return return_type_symbol;
       
 24306                 
       
 24307             }
       
 24308             
       
 24309             
       
 24310             ERROR;
       
 24311         }
       
 24312         
       
 24313     }/*function_usint_to_date*/
       
 24314     break;
       
 24315 
       
 24316 /****
       
 24317  *USINT_TO_DWORD
       
 24318  */
       
 24319     case function_usint_to_dword :
       
 24320     {
       
 24321         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24322 
       
 24323         {
       
 24324             symbol_c *IN_type_symbol = param_data_type;
       
 24325             last_type_symbol = IN_type_symbol;
       
 24326             
       
 24327             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24328             {
       
 24329         
       
 24330                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 24331                 return return_type_symbol;
       
 24332                 
       
 24333             }
       
 24334             
       
 24335             
       
 24336             ERROR;
       
 24337         }
       
 24338         
       
 24339     }/*function_usint_to_dword*/
       
 24340     break;
       
 24341 
       
 24342 /****
       
 24343  *USINT_TO_DT
       
 24344  */
       
 24345     case function_usint_to_dt :
       
 24346     {
       
 24347         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24348 
       
 24349         {
       
 24350             symbol_c *IN_type_symbol = param_data_type;
       
 24351             last_type_symbol = IN_type_symbol;
       
 24352             
       
 24353             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24354             {
       
 24355         
       
 24356                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 24357                 return return_type_symbol;
       
 24358                 
       
 24359             }
       
 24360             
       
 24361             
       
 24362             ERROR;
       
 24363         }
       
 24364         
       
 24365     }/*function_usint_to_dt*/
       
 24366     break;
       
 24367 
       
 24368 /****
       
 24369  *USINT_TO_TOD
       
 24370  */
       
 24371     case function_usint_to_tod :
       
 24372     {
       
 24373         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24374 
       
 24375         {
       
 24376             symbol_c *IN_type_symbol = param_data_type;
       
 24377             last_type_symbol = IN_type_symbol;
       
 24378             
       
 24379             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24380             {
       
 24381         
       
 24382                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 24383                 return return_type_symbol;
       
 24384                 
       
 24385             }
       
 24386             
       
 24387             
       
 24388             ERROR;
       
 24389         }
       
 24390         
       
 24391     }/*function_usint_to_tod*/
       
 24392     break;
       
 24393 
       
 24394 /****
       
 24395  *USINT_TO_UDINT
       
 24396  */
       
 24397     case function_usint_to_udint :
       
 24398     {
       
 24399         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24400 
       
 24401         {
       
 24402             symbol_c *IN_type_symbol = param_data_type;
       
 24403             last_type_symbol = IN_type_symbol;
       
 24404             
       
 24405             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24406             {
       
 24407         
       
 24408                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 24409                 return return_type_symbol;
       
 24410                 
       
 24411             }
       
 24412             
       
 24413             
       
 24414             ERROR;
       
 24415         }
       
 24416         
       
 24417     }/*function_usint_to_udint*/
       
 24418     break;
       
 24419 
       
 24420 /****
       
 24421  *USINT_TO_WORD
       
 24422  */
       
 24423     case function_usint_to_word :
       
 24424     {
       
 24425         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24426 
       
 24427         {
       
 24428             symbol_c *IN_type_symbol = param_data_type;
       
 24429             last_type_symbol = IN_type_symbol;
       
 24430             
       
 24431             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24432             {
       
 24433         
       
 24434                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 24435                 return return_type_symbol;
       
 24436                 
       
 24437             }
       
 24438             
       
 24439             
       
 24440             ERROR;
       
 24441         }
       
 24442         
       
 24443     }/*function_usint_to_word*/
       
 24444     break;
       
 24445 
       
 24446 /****
       
 24447  *USINT_TO_STRING
       
 24448  */
       
 24449     case function_usint_to_string :
       
 24450     {
       
 24451         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24452 
       
 24453         {
       
 24454             symbol_c *IN_type_symbol = param_data_type;
       
 24455             last_type_symbol = IN_type_symbol;
       
 24456             
       
 24457             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24458             {
       
 24459         
       
 24460                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 24461                 return return_type_symbol;
       
 24462                 
       
 24463             }
       
 24464             
       
 24465             
       
 24466             ERROR;
       
 24467         }
       
 24468         
       
 24469     }/*function_usint_to_string*/
       
 24470     break;
       
 24471 
       
 24472 /****
       
 24473  *USINT_TO_LWORD
       
 24474  */
       
 24475     case function_usint_to_lword :
       
 24476     {
       
 24477         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24478 
       
 24479         {
       
 24480             symbol_c *IN_type_symbol = param_data_type;
       
 24481             last_type_symbol = IN_type_symbol;
       
 24482             
       
 24483             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24484             {
       
 24485         
       
 24486                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 24487                 return return_type_symbol;
       
 24488                 
       
 24489             }
       
 24490             
       
 24491             
       
 24492             ERROR;
       
 24493         }
       
 24494         
       
 24495     }/*function_usint_to_lword*/
       
 24496     break;
       
 24497 
       
 24498 /****
       
 24499  *USINT_TO_UINT
       
 24500  */
       
 24501     case function_usint_to_uint :
       
 24502     {
       
 24503         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24504 
       
 24505         {
       
 24506             symbol_c *IN_type_symbol = param_data_type;
       
 24507             last_type_symbol = IN_type_symbol;
       
 24508             
       
 24509             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24510             {
       
 24511         
       
 24512                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 24513                 return return_type_symbol;
       
 24514                 
       
 24515             }
       
 24516             
       
 24517             
       
 24518             ERROR;
       
 24519         }
       
 24520         
       
 24521     }/*function_usint_to_uint*/
       
 24522     break;
       
 24523 
       
 24524 /****
       
 24525  *USINT_TO_LREAL
       
 24526  */
       
 24527     case function_usint_to_lreal :
       
 24528     {
       
 24529         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24530 
       
 24531         {
       
 24532             symbol_c *IN_type_symbol = param_data_type;
       
 24533             last_type_symbol = IN_type_symbol;
       
 24534             
       
 24535             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24536             {
       
 24537         
       
 24538                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 24539                 return return_type_symbol;
       
 24540                 
       
 24541             }
       
 24542             
       
 24543             
       
 24544             ERROR;
       
 24545         }
       
 24546         
       
 24547     }/*function_usint_to_lreal*/
       
 24548     break;
       
 24549 
       
 24550 /****
       
 24551  *USINT_TO_BYTE
       
 24552  */
       
 24553     case function_usint_to_byte :
       
 24554     {
       
 24555         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24556 
       
 24557         {
       
 24558             symbol_c *IN_type_symbol = param_data_type;
       
 24559             last_type_symbol = IN_type_symbol;
       
 24560             
       
 24561             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24562             {
       
 24563         
       
 24564                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 24565                 return return_type_symbol;
       
 24566                 
       
 24567             }
       
 24568             
       
 24569             
       
 24570             ERROR;
       
 24571         }
       
 24572         
       
 24573     }/*function_usint_to_byte*/
       
 24574     break;
       
 24575 
       
 24576 /****
       
 24577  *USINT_TO_ULINT
       
 24578  */
       
 24579     case function_usint_to_ulint :
       
 24580     {
       
 24581         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24582 
       
 24583         {
       
 24584             symbol_c *IN_type_symbol = param_data_type;
       
 24585             last_type_symbol = IN_type_symbol;
       
 24586             
       
 24587             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24588             {
       
 24589         
       
 24590                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24591                 return return_type_symbol;
       
 24592                 
       
 24593             }
       
 24594             
       
 24595             
       
 24596             ERROR;
       
 24597         }
       
 24598         
       
 24599     }/*function_usint_to_ulint*/
       
 24600     break;
       
 24601 
       
 24602 /****
       
 24603  *USINT_TO_BOOL
       
 24604  */
       
 24605     case function_usint_to_bool :
       
 24606     {
       
 24607         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24608 
       
 24609         {
       
 24610             symbol_c *IN_type_symbol = param_data_type;
       
 24611             last_type_symbol = IN_type_symbol;
       
 24612             
       
 24613             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24614             {
       
 24615         
       
 24616                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 24617                 return return_type_symbol;
       
 24618                 
       
 24619             }
       
 24620             
       
 24621             
       
 24622             ERROR;
       
 24623         }
       
 24624         
       
 24625     }/*function_usint_to_bool*/
       
 24626     break;
       
 24627 
       
 24628 /****
       
 24629  *USINT_TO_TIME
       
 24630  */
       
 24631     case function_usint_to_time :
       
 24632     {
       
 24633         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24634 
       
 24635         {
       
 24636             symbol_c *IN_type_symbol = param_data_type;
       
 24637             last_type_symbol = IN_type_symbol;
       
 24638             
       
 24639             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24640             {
       
 24641         
       
 24642                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 24643                 return return_type_symbol;
       
 24644                 
       
 24645             }
       
 24646             
       
 24647             
       
 24648             ERROR;
       
 24649         }
       
 24650         
       
 24651     }/*function_usint_to_time*/
       
 24652     break;
       
 24653 
       
 24654 /****
       
 24655  *USINT_TO_INT
       
 24656  */
       
 24657     case function_usint_to_int :
       
 24658     {
       
 24659         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 24660 
       
 24661         {
       
 24662             symbol_c *IN_type_symbol = param_data_type;
       
 24663             last_type_symbol = IN_type_symbol;
       
 24664             
       
 24665             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 24666             {
       
 24667         
       
 24668                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 24669                 return return_type_symbol;
       
 24670                 
       
 24671             }
       
 24672             
       
 24673             
       
 24674             ERROR;
       
 24675         }
       
 24676         
       
 24677     }/*function_usint_to_int*/
       
 24678     break;
       
 24679 
       
 24680 /****
       
 24681  *ULINT_TO_REAL
       
 24682  */
       
 24683     case function_ulint_to_real :
       
 24684     {
       
 24685         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24686 
       
 24687         {
       
 24688             symbol_c *IN_type_symbol = param_data_type;
       
 24689             last_type_symbol = IN_type_symbol;
       
 24690             
       
 24691             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24692             {
       
 24693         
       
 24694                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 24695                 return return_type_symbol;
       
 24696                 
       
 24697             }
       
 24698             
       
 24699             
       
 24700             ERROR;
       
 24701         }
       
 24702         
       
 24703     }/*function_ulint_to_real*/
       
 24704     break;
       
 24705 
       
 24706 /****
       
 24707  *ULINT_TO_SINT
       
 24708  */
       
 24709     case function_ulint_to_sint :
       
 24710     {
       
 24711         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24712 
       
 24713         {
       
 24714             symbol_c *IN_type_symbol = param_data_type;
       
 24715             last_type_symbol = IN_type_symbol;
       
 24716             
       
 24717             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24718             {
       
 24719         
       
 24720                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 24721                 return return_type_symbol;
       
 24722                 
       
 24723             }
       
 24724             
       
 24725             
       
 24726             ERROR;
       
 24727         }
       
 24728         
       
 24729     }/*function_ulint_to_sint*/
       
 24730     break;
       
 24731 
       
 24732 /****
       
 24733  *ULINT_TO_LINT
       
 24734  */
       
 24735     case function_ulint_to_lint :
       
 24736     {
       
 24737         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24738 
       
 24739         {
       
 24740             symbol_c *IN_type_symbol = param_data_type;
       
 24741             last_type_symbol = IN_type_symbol;
       
 24742             
       
 24743             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24744             {
       
 24745         
       
 24746                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 24747                 return return_type_symbol;
       
 24748                 
       
 24749             }
       
 24750             
       
 24751             
       
 24752             ERROR;
       
 24753         }
       
 24754         
       
 24755     }/*function_ulint_to_lint*/
       
 24756     break;
       
 24757 
       
 24758 /****
       
 24759  *ULINT_TO_DINT
       
 24760  */
       
 24761     case function_ulint_to_dint :
       
 24762     {
       
 24763         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24764 
       
 24765         {
       
 24766             symbol_c *IN_type_symbol = param_data_type;
       
 24767             last_type_symbol = IN_type_symbol;
       
 24768             
       
 24769             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24770             {
       
 24771         
       
 24772                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 24773                 return return_type_symbol;
       
 24774                 
       
 24775             }
       
 24776             
       
 24777             
       
 24778             ERROR;
       
 24779         }
       
 24780         
       
 24781     }/*function_ulint_to_dint*/
       
 24782     break;
       
 24783 
       
 24784 /****
       
 24785  *ULINT_TO_DATE
       
 24786  */
       
 24787     case function_ulint_to_date :
       
 24788     {
       
 24789         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24790 
       
 24791         {
       
 24792             symbol_c *IN_type_symbol = param_data_type;
       
 24793             last_type_symbol = IN_type_symbol;
       
 24794             
       
 24795             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24796             {
       
 24797         
       
 24798                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 24799                 return return_type_symbol;
       
 24800                 
       
 24801             }
       
 24802             
       
 24803             
       
 24804             ERROR;
       
 24805         }
       
 24806         
       
 24807     }/*function_ulint_to_date*/
       
 24808     break;
       
 24809 
       
 24810 /****
       
 24811  *ULINT_TO_DWORD
       
 24812  */
       
 24813     case function_ulint_to_dword :
       
 24814     {
       
 24815         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24816 
       
 24817         {
       
 24818             symbol_c *IN_type_symbol = param_data_type;
       
 24819             last_type_symbol = IN_type_symbol;
       
 24820             
       
 24821             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24822             {
       
 24823         
       
 24824                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 24825                 return return_type_symbol;
       
 24826                 
       
 24827             }
       
 24828             
       
 24829             
       
 24830             ERROR;
       
 24831         }
       
 24832         
       
 24833     }/*function_ulint_to_dword*/
       
 24834     break;
       
 24835 
       
 24836 /****
       
 24837  *ULINT_TO_DT
       
 24838  */
       
 24839     case function_ulint_to_dt :
       
 24840     {
       
 24841         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24842 
       
 24843         {
       
 24844             symbol_c *IN_type_symbol = param_data_type;
       
 24845             last_type_symbol = IN_type_symbol;
       
 24846             
       
 24847             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24848             {
       
 24849         
       
 24850                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 24851                 return return_type_symbol;
       
 24852                 
       
 24853             }
       
 24854             
       
 24855             
       
 24856             ERROR;
       
 24857         }
       
 24858         
       
 24859     }/*function_ulint_to_dt*/
       
 24860     break;
       
 24861 
       
 24862 /****
       
 24863  *ULINT_TO_TOD
       
 24864  */
       
 24865     case function_ulint_to_tod :
       
 24866     {
       
 24867         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24868 
       
 24869         {
       
 24870             symbol_c *IN_type_symbol = param_data_type;
       
 24871             last_type_symbol = IN_type_symbol;
       
 24872             
       
 24873             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24874             {
       
 24875         
       
 24876                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 24877                 return return_type_symbol;
       
 24878                 
       
 24879             }
       
 24880             
       
 24881             
       
 24882             ERROR;
       
 24883         }
       
 24884         
       
 24885     }/*function_ulint_to_tod*/
       
 24886     break;
       
 24887 
       
 24888 /****
       
 24889  *ULINT_TO_UDINT
       
 24890  */
       
 24891     case function_ulint_to_udint :
       
 24892     {
       
 24893         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24894 
       
 24895         {
       
 24896             symbol_c *IN_type_symbol = param_data_type;
       
 24897             last_type_symbol = IN_type_symbol;
       
 24898             
       
 24899             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24900             {
       
 24901         
       
 24902                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 24903                 return return_type_symbol;
       
 24904                 
       
 24905             }
       
 24906             
       
 24907             
       
 24908             ERROR;
       
 24909         }
       
 24910         
       
 24911     }/*function_ulint_to_udint*/
       
 24912     break;
       
 24913 
       
 24914 /****
       
 24915  *ULINT_TO_WORD
       
 24916  */
       
 24917     case function_ulint_to_word :
       
 24918     {
       
 24919         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24920 
       
 24921         {
       
 24922             symbol_c *IN_type_symbol = param_data_type;
       
 24923             last_type_symbol = IN_type_symbol;
       
 24924             
       
 24925             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24926             {
       
 24927         
       
 24928                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 24929                 return return_type_symbol;
       
 24930                 
       
 24931             }
       
 24932             
       
 24933             
       
 24934             ERROR;
       
 24935         }
       
 24936         
       
 24937     }/*function_ulint_to_word*/
       
 24938     break;
       
 24939 
       
 24940 /****
       
 24941  *ULINT_TO_STRING
       
 24942  */
       
 24943     case function_ulint_to_string :
       
 24944     {
       
 24945         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24946 
       
 24947         {
       
 24948             symbol_c *IN_type_symbol = param_data_type;
       
 24949             last_type_symbol = IN_type_symbol;
       
 24950             
       
 24951             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24952             {
       
 24953         
       
 24954                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 24955                 return return_type_symbol;
       
 24956                 
       
 24957             }
       
 24958             
       
 24959             
       
 24960             ERROR;
       
 24961         }
       
 24962         
       
 24963     }/*function_ulint_to_string*/
       
 24964     break;
       
 24965 
       
 24966 /****
       
 24967  *ULINT_TO_LWORD
       
 24968  */
       
 24969     case function_ulint_to_lword :
       
 24970     {
       
 24971         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24972 
       
 24973         {
       
 24974             symbol_c *IN_type_symbol = param_data_type;
       
 24975             last_type_symbol = IN_type_symbol;
       
 24976             
       
 24977             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 24978             {
       
 24979         
       
 24980                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 24981                 return return_type_symbol;
       
 24982                 
       
 24983             }
       
 24984             
       
 24985             
       
 24986             ERROR;
       
 24987         }
       
 24988         
       
 24989     }/*function_ulint_to_lword*/
       
 24990     break;
       
 24991 
       
 24992 /****
       
 24993  *ULINT_TO_UINT
       
 24994  */
       
 24995     case function_ulint_to_uint :
       
 24996     {
       
 24997         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 24998 
       
 24999         {
       
 25000             symbol_c *IN_type_symbol = param_data_type;
       
 25001             last_type_symbol = IN_type_symbol;
       
 25002             
       
 25003             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25004             {
       
 25005         
       
 25006                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 25007                 return return_type_symbol;
       
 25008                 
       
 25009             }
       
 25010             
       
 25011             
       
 25012             ERROR;
       
 25013         }
       
 25014         
       
 25015     }/*function_ulint_to_uint*/
       
 25016     break;
       
 25017 
       
 25018 /****
       
 25019  *ULINT_TO_LREAL
       
 25020  */
       
 25021     case function_ulint_to_lreal :
       
 25022     {
       
 25023         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25024 
       
 25025         {
       
 25026             symbol_c *IN_type_symbol = param_data_type;
       
 25027             last_type_symbol = IN_type_symbol;
       
 25028             
       
 25029             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25030             {
       
 25031         
       
 25032                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 25033                 return return_type_symbol;
       
 25034                 
       
 25035             }
       
 25036             
       
 25037             
       
 25038             ERROR;
       
 25039         }
       
 25040         
       
 25041     }/*function_ulint_to_lreal*/
       
 25042     break;
       
 25043 
       
 25044 /****
       
 25045  *ULINT_TO_BYTE
       
 25046  */
       
 25047     case function_ulint_to_byte :
       
 25048     {
       
 25049         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25050 
       
 25051         {
       
 25052             symbol_c *IN_type_symbol = param_data_type;
       
 25053             last_type_symbol = IN_type_symbol;
       
 25054             
       
 25055             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25056             {
       
 25057         
       
 25058                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 25059                 return return_type_symbol;
       
 25060                 
       
 25061             }
       
 25062             
       
 25063             
       
 25064             ERROR;
       
 25065         }
       
 25066         
       
 25067     }/*function_ulint_to_byte*/
       
 25068     break;
       
 25069 
       
 25070 /****
       
 25071  *ULINT_TO_USINT
       
 25072  */
       
 25073     case function_ulint_to_usint :
       
 25074     {
       
 25075         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25076 
       
 25077         {
       
 25078             symbol_c *IN_type_symbol = param_data_type;
       
 25079             last_type_symbol = IN_type_symbol;
       
 25080             
       
 25081             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25082             {
       
 25083         
       
 25084                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 25085                 return return_type_symbol;
       
 25086                 
       
 25087             }
       
 25088             
       
 25089             
       
 25090             ERROR;
       
 25091         }
       
 25092         
       
 25093     }/*function_ulint_to_usint*/
       
 25094     break;
       
 25095 
       
 25096 /****
       
 25097  *ULINT_TO_BOOL
       
 25098  */
       
 25099     case function_ulint_to_bool :
       
 25100     {
       
 25101         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25102 
       
 25103         {
       
 25104             symbol_c *IN_type_symbol = param_data_type;
       
 25105             last_type_symbol = IN_type_symbol;
       
 25106             
       
 25107             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25108             {
       
 25109         
       
 25110                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 25111                 return return_type_symbol;
       
 25112                 
       
 25113             }
       
 25114             
       
 25115             
       
 25116             ERROR;
       
 25117         }
       
 25118         
       
 25119     }/*function_ulint_to_bool*/
       
 25120     break;
       
 25121 
       
 25122 /****
       
 25123  *ULINT_TO_TIME
       
 25124  */
       
 25125     case function_ulint_to_time :
       
 25126     {
       
 25127         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25128 
       
 25129         {
       
 25130             symbol_c *IN_type_symbol = param_data_type;
       
 25131             last_type_symbol = IN_type_symbol;
       
 25132             
       
 25133             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25134             {
       
 25135         
       
 25136                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 25137                 return return_type_symbol;
       
 25138                 
       
 25139             }
       
 25140             
       
 25141             
       
 25142             ERROR;
       
 25143         }
       
 25144         
       
 25145     }/*function_ulint_to_time*/
       
 25146     break;
       
 25147 
       
 25148 /****
       
 25149  *ULINT_TO_INT
       
 25150  */
       
 25151     case function_ulint_to_int :
       
 25152     {
       
 25153         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25154 
       
 25155         {
       
 25156             symbol_c *IN_type_symbol = param_data_type;
       
 25157             last_type_symbol = IN_type_symbol;
       
 25158             
       
 25159             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 25160             {
       
 25161         
       
 25162                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 25163                 return return_type_symbol;
       
 25164                 
       
 25165             }
       
 25166             
       
 25167             
       
 25168             ERROR;
       
 25169         }
       
 25170         
       
 25171     }/*function_ulint_to_int*/
       
 25172     break;
       
 25173 
       
 25174 /****
       
 25175  *BOOL_TO_REAL
       
 25176  */
       
 25177     case function_bool_to_real :
       
 25178     {
       
 25179         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25180 
       
 25181         {
       
 25182             symbol_c *IN_type_symbol = param_data_type;
       
 25183             last_type_symbol = IN_type_symbol;
       
 25184             
       
 25185             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25186             {
       
 25187         
       
 25188                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 25189                 return return_type_symbol;
       
 25190                 
       
 25191             }
       
 25192             
       
 25193             
       
 25194             ERROR;
       
 25195         }
       
 25196         
       
 25197     }/*function_bool_to_real*/
       
 25198     break;
       
 25199 
       
 25200 /****
       
 25201  *BOOL_TO_SINT
       
 25202  */
       
 25203     case function_bool_to_sint :
       
 25204     {
       
 25205         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25206 
       
 25207         {
       
 25208             symbol_c *IN_type_symbol = param_data_type;
       
 25209             last_type_symbol = IN_type_symbol;
       
 25210             
       
 25211             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25212             {
       
 25213         
       
 25214                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 25215                 return return_type_symbol;
       
 25216                 
       
 25217             }
       
 25218             
       
 25219             
       
 25220             ERROR;
       
 25221         }
       
 25222         
       
 25223     }/*function_bool_to_sint*/
       
 25224     break;
       
 25225 
       
 25226 /****
       
 25227  *BOOL_TO_LINT
       
 25228  */
       
 25229     case function_bool_to_lint :
       
 25230     {
       
 25231         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25232 
       
 25233         {
       
 25234             symbol_c *IN_type_symbol = param_data_type;
       
 25235             last_type_symbol = IN_type_symbol;
       
 25236             
       
 25237             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25238             {
       
 25239         
       
 25240                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 25241                 return return_type_symbol;
       
 25242                 
       
 25243             }
       
 25244             
       
 25245             
       
 25246             ERROR;
       
 25247         }
       
 25248         
       
 25249     }/*function_bool_to_lint*/
       
 25250     break;
       
 25251 
       
 25252 /****
       
 25253  *BOOL_TO_DINT
       
 25254  */
       
 25255     case function_bool_to_dint :
       
 25256     {
       
 25257         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25258 
       
 25259         {
       
 25260             symbol_c *IN_type_symbol = param_data_type;
       
 25261             last_type_symbol = IN_type_symbol;
       
 25262             
       
 25263             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25264             {
       
 25265         
       
 25266                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 25267                 return return_type_symbol;
       
 25268                 
       
 25269             }
       
 25270             
       
 25271             
       
 25272             ERROR;
       
 25273         }
       
 25274         
       
 25275     }/*function_bool_to_dint*/
       
 25276     break;
       
 25277 
       
 25278 /****
       
 25279  *BOOL_TO_DATE
       
 25280  */
       
 25281     case function_bool_to_date :
       
 25282     {
       
 25283         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25284 
       
 25285         {
       
 25286             symbol_c *IN_type_symbol = param_data_type;
       
 25287             last_type_symbol = IN_type_symbol;
       
 25288             
       
 25289             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25290             {
       
 25291         
       
 25292                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 25293                 return return_type_symbol;
       
 25294                 
       
 25295             }
       
 25296             
       
 25297             
       
 25298             ERROR;
       
 25299         }
       
 25300         
       
 25301     }/*function_bool_to_date*/
       
 25302     break;
       
 25303 
       
 25304 /****
       
 25305  *BOOL_TO_DWORD
       
 25306  */
       
 25307     case function_bool_to_dword :
       
 25308     {
       
 25309         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25310 
       
 25311         {
       
 25312             symbol_c *IN_type_symbol = param_data_type;
       
 25313             last_type_symbol = IN_type_symbol;
       
 25314             
       
 25315             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25316             {
       
 25317         
       
 25318                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 25319                 return return_type_symbol;
       
 25320                 
       
 25321             }
       
 25322             
       
 25323             
       
 25324             ERROR;
       
 25325         }
       
 25326         
       
 25327     }/*function_bool_to_dword*/
       
 25328     break;
       
 25329 
       
 25330 /****
       
 25331  *BOOL_TO_DT
       
 25332  */
       
 25333     case function_bool_to_dt :
       
 25334     {
       
 25335         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25336 
       
 25337         {
       
 25338             symbol_c *IN_type_symbol = param_data_type;
       
 25339             last_type_symbol = IN_type_symbol;
       
 25340             
       
 25341             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25342             {
       
 25343         
       
 25344                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 25345                 return return_type_symbol;
       
 25346                 
       
 25347             }
       
 25348             
       
 25349             
       
 25350             ERROR;
       
 25351         }
       
 25352         
       
 25353     }/*function_bool_to_dt*/
       
 25354     break;
       
 25355 
       
 25356 /****
       
 25357  *BOOL_TO_TOD
       
 25358  */
       
 25359     case function_bool_to_tod :
       
 25360     {
       
 25361         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25362 
       
 25363         {
       
 25364             symbol_c *IN_type_symbol = param_data_type;
       
 25365             last_type_symbol = IN_type_symbol;
       
 25366             
       
 25367             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25368             {
       
 25369         
       
 25370                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 25371                 return return_type_symbol;
       
 25372                 
       
 25373             }
       
 25374             
       
 25375             
       
 25376             ERROR;
       
 25377         }
       
 25378         
       
 25379     }/*function_bool_to_tod*/
       
 25380     break;
       
 25381 
       
 25382 /****
       
 25383  *BOOL_TO_UDINT
       
 25384  */
       
 25385     case function_bool_to_udint :
       
 25386     {
       
 25387         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25388 
       
 25389         {
       
 25390             symbol_c *IN_type_symbol = param_data_type;
       
 25391             last_type_symbol = IN_type_symbol;
       
 25392             
       
 25393             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25394             {
       
 25395         
       
 25396                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 25397                 return return_type_symbol;
       
 25398                 
       
 25399             }
       
 25400             
       
 25401             
       
 25402             ERROR;
       
 25403         }
       
 25404         
       
 25405     }/*function_bool_to_udint*/
       
 25406     break;
       
 25407 
       
 25408 /****
       
 25409  *BOOL_TO_WORD
       
 25410  */
       
 25411     case function_bool_to_word :
       
 25412     {
       
 25413         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25414 
       
 25415         {
       
 25416             symbol_c *IN_type_symbol = param_data_type;
       
 25417             last_type_symbol = IN_type_symbol;
       
 25418             
       
 25419             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25420             {
       
 25421         
       
 25422                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 25423                 return return_type_symbol;
       
 25424                 
       
 25425             }
       
 25426             
       
 25427             
       
 25428             ERROR;
       
 25429         }
       
 25430         
       
 25431     }/*function_bool_to_word*/
       
 25432     break;
       
 25433 
       
 25434 /****
       
 25435  *BOOL_TO_STRING
       
 25436  */
       
 25437     case function_bool_to_string :
       
 25438     {
       
 25439         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25440 
       
 25441         {
       
 25442             symbol_c *IN_type_symbol = param_data_type;
       
 25443             last_type_symbol = IN_type_symbol;
       
 25444             
       
 25445             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25446             {
       
 25447         
       
 25448                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 25449                 return return_type_symbol;
       
 25450                 
       
 25451             }
       
 25452             
       
 25453             
       
 25454             ERROR;
       
 25455         }
       
 25456         
       
 25457     }/*function_bool_to_string*/
       
 25458     break;
       
 25459 
       
 25460 /****
       
 25461  *BOOL_TO_LWORD
       
 25462  */
       
 25463     case function_bool_to_lword :
       
 25464     {
       
 25465         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25466 
       
 25467         {
       
 25468             symbol_c *IN_type_symbol = param_data_type;
       
 25469             last_type_symbol = IN_type_symbol;
       
 25470             
       
 25471             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25472             {
       
 25473         
       
 25474                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 25475                 return return_type_symbol;
       
 25476                 
       
 25477             }
       
 25478             
       
 25479             
       
 25480             ERROR;
       
 25481         }
       
 25482         
       
 25483     }/*function_bool_to_lword*/
       
 25484     break;
       
 25485 
       
 25486 /****
       
 25487  *BOOL_TO_UINT
       
 25488  */
       
 25489     case function_bool_to_uint :
       
 25490     {
       
 25491         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25492 
       
 25493         {
       
 25494             symbol_c *IN_type_symbol = param_data_type;
       
 25495             last_type_symbol = IN_type_symbol;
       
 25496             
       
 25497             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25498             {
       
 25499         
       
 25500                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 25501                 return return_type_symbol;
       
 25502                 
       
 25503             }
       
 25504             
       
 25505             
       
 25506             ERROR;
       
 25507         }
       
 25508         
       
 25509     }/*function_bool_to_uint*/
       
 25510     break;
       
 25511 
       
 25512 /****
       
 25513  *BOOL_TO_LREAL
       
 25514  */
       
 25515     case function_bool_to_lreal :
       
 25516     {
       
 25517         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25518 
       
 25519         {
       
 25520             symbol_c *IN_type_symbol = param_data_type;
       
 25521             last_type_symbol = IN_type_symbol;
       
 25522             
       
 25523             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25524             {
       
 25525         
       
 25526                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 25527                 return return_type_symbol;
       
 25528                 
       
 25529             }
       
 25530             
       
 25531             
       
 25532             ERROR;
       
 25533         }
       
 25534         
       
 25535     }/*function_bool_to_lreal*/
       
 25536     break;
       
 25537 
       
 25538 /****
       
 25539  *BOOL_TO_BYTE
       
 25540  */
       
 25541     case function_bool_to_byte :
       
 25542     {
       
 25543         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25544 
       
 25545         {
       
 25546             symbol_c *IN_type_symbol = param_data_type;
       
 25547             last_type_symbol = IN_type_symbol;
       
 25548             
       
 25549             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25550             {
       
 25551         
       
 25552                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 25553                 return return_type_symbol;
       
 25554                 
       
 25555             }
       
 25556             
       
 25557             
       
 25558             ERROR;
       
 25559         }
       
 25560         
       
 25561     }/*function_bool_to_byte*/
       
 25562     break;
       
 25563 
       
 25564 /****
       
 25565  *BOOL_TO_USINT
       
 25566  */
       
 25567     case function_bool_to_usint :
       
 25568     {
       
 25569         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25570 
       
 25571         {
       
 25572             symbol_c *IN_type_symbol = param_data_type;
       
 25573             last_type_symbol = IN_type_symbol;
       
 25574             
       
 25575             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25576             {
       
 25577         
       
 25578                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 25579                 return return_type_symbol;
       
 25580                 
       
 25581             }
       
 25582             
       
 25583             
       
 25584             ERROR;
       
 25585         }
       
 25586         
       
 25587     }/*function_bool_to_usint*/
       
 25588     break;
       
 25589 
       
 25590 /****
       
 25591  *BOOL_TO_ULINT
       
 25592  */
       
 25593     case function_bool_to_ulint :
       
 25594     {
       
 25595         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25596 
       
 25597         {
       
 25598             symbol_c *IN_type_symbol = param_data_type;
       
 25599             last_type_symbol = IN_type_symbol;
       
 25600             
       
 25601             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25602             {
       
 25603         
       
 25604                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 25605                 return return_type_symbol;
       
 25606                 
       
 25607             }
       
 25608             
       
 25609             
       
 25610             ERROR;
       
 25611         }
       
 25612         
       
 25613     }/*function_bool_to_ulint*/
       
 25614     break;
       
 25615 
       
 25616 /****
       
 25617  *BOOL_TO_TIME
       
 25618  */
       
 25619     case function_bool_to_time :
       
 25620     {
       
 25621         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25622 
       
 25623         {
       
 25624             symbol_c *IN_type_symbol = param_data_type;
       
 25625             last_type_symbol = IN_type_symbol;
       
 25626             
       
 25627             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25628             {
       
 25629         
       
 25630                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 25631                 return return_type_symbol;
       
 25632                 
       
 25633             }
       
 25634             
       
 25635             
       
 25636             ERROR;
       
 25637         }
       
 25638         
       
 25639     }/*function_bool_to_time*/
       
 25640     break;
       
 25641 
       
 25642 /****
       
 25643  *BOOL_TO_INT
       
 25644  */
       
 25645     case function_bool_to_int :
       
 25646     {
       
 25647         symbol_c *last_type_symbol = &search_constant_type_c::bool_type_name;
       
 25648 
       
 25649         {
       
 25650             symbol_c *IN_type_symbol = param_data_type;
       
 25651             last_type_symbol = IN_type_symbol;
       
 25652             
       
 25653             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 25654             {
       
 25655         
       
 25656                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 25657                 return return_type_symbol;
       
 25658                 
       
 25659             }
       
 25660             
       
 25661             
       
 25662             ERROR;
       
 25663         }
       
 25664         
       
 25665     }/*function_bool_to_int*/
       
 25666     break;
       
 25667 
       
 25668 /****
       
 25669  *TIME_TO_REAL
       
 25670  */
       
 25671     case function_time_to_real :
       
 25672     {
       
 25673         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25674 
       
 25675         {
       
 25676             symbol_c *IN_type_symbol = param_data_type;
       
 25677             last_type_symbol = IN_type_symbol;
       
 25678             
       
 25679             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25680             {
       
 25681         
       
 25682                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 25683                 return return_type_symbol;
       
 25684                 
       
 25685             }
       
 25686             
       
 25687             
       
 25688             ERROR;
       
 25689         }
       
 25690         
       
 25691     }/*function_time_to_real*/
       
 25692     break;
       
 25693 
       
 25694 /****
       
 25695  *TIME_TO_SINT
       
 25696  */
       
 25697     case function_time_to_sint :
       
 25698     {
       
 25699         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25700 
       
 25701         {
       
 25702             symbol_c *IN_type_symbol = param_data_type;
       
 25703             last_type_symbol = IN_type_symbol;
       
 25704             
       
 25705             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25706             {
       
 25707         
       
 25708                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 25709                 return return_type_symbol;
       
 25710                 
       
 25711             }
       
 25712             
       
 25713             
       
 25714             ERROR;
       
 25715         }
       
 25716         
       
 25717     }/*function_time_to_sint*/
       
 25718     break;
       
 25719 
       
 25720 /****
       
 25721  *TIME_TO_LINT
       
 25722  */
       
 25723     case function_time_to_lint :
       
 25724     {
       
 25725         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25726 
       
 25727         {
       
 25728             symbol_c *IN_type_symbol = param_data_type;
       
 25729             last_type_symbol = IN_type_symbol;
       
 25730             
       
 25731             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25732             {
       
 25733         
       
 25734                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 25735                 return return_type_symbol;
       
 25736                 
       
 25737             }
       
 25738             
       
 25739             
       
 25740             ERROR;
       
 25741         }
       
 25742         
       
 25743     }/*function_time_to_lint*/
       
 25744     break;
       
 25745 
       
 25746 /****
       
 25747  *TIME_TO_DINT
       
 25748  */
       
 25749     case function_time_to_dint :
       
 25750     {
       
 25751         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25752 
       
 25753         {
       
 25754             symbol_c *IN_type_symbol = param_data_type;
       
 25755             last_type_symbol = IN_type_symbol;
       
 25756             
       
 25757             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25758             {
       
 25759         
       
 25760                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 25761                 return return_type_symbol;
       
 25762                 
       
 25763             }
       
 25764             
       
 25765             
       
 25766             ERROR;
       
 25767         }
       
 25768         
       
 25769     }/*function_time_to_dint*/
       
 25770     break;
       
 25771 
       
 25772 /****
       
 25773  *TIME_TO_DWORD
       
 25774  */
       
 25775     case function_time_to_dword :
       
 25776     {
       
 25777         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25778 
       
 25779         {
       
 25780             symbol_c *IN_type_symbol = param_data_type;
       
 25781             last_type_symbol = IN_type_symbol;
       
 25782             
       
 25783             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25784             {
       
 25785         
       
 25786                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 25787                 return return_type_symbol;
       
 25788                 
       
 25789             }
       
 25790             
       
 25791             
       
 25792             ERROR;
       
 25793         }
       
 25794         
       
 25795     }/*function_time_to_dword*/
       
 25796     break;
       
 25797 
       
 25798 /****
       
 25799  *TIME_TO_UDINT
       
 25800  */
       
 25801     case function_time_to_udint :
       
 25802     {
       
 25803         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25804 
       
 25805         {
       
 25806             symbol_c *IN_type_symbol = param_data_type;
       
 25807             last_type_symbol = IN_type_symbol;
       
 25808             
       
 25809             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25810             {
       
 25811         
       
 25812                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 25813                 return return_type_symbol;
       
 25814                 
       
 25815             }
       
 25816             
       
 25817             
       
 25818             ERROR;
       
 25819         }
       
 25820         
       
 25821     }/*function_time_to_udint*/
       
 25822     break;
       
 25823 
       
 25824 /****
       
 25825  *TIME_TO_WORD
       
 25826  */
       
 25827     case function_time_to_word :
       
 25828     {
       
 25829         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25830 
       
 25831         {
       
 25832             symbol_c *IN_type_symbol = param_data_type;
       
 25833             last_type_symbol = IN_type_symbol;
       
 25834             
       
 25835             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25836             {
       
 25837         
       
 25838                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 25839                 return return_type_symbol;
       
 25840                 
       
 25841             }
       
 25842             
       
 25843             
       
 25844             ERROR;
       
 25845         }
       
 25846         
       
 25847     }/*function_time_to_word*/
       
 25848     break;
       
 25849 
       
 25850 /****
       
 25851  *TIME_TO_STRING
       
 25852  */
       
 25853     case function_time_to_string :
       
 25854     {
       
 25855         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25856 
       
 25857         {
       
 25858             symbol_c *IN_type_symbol = param_data_type;
       
 25859             last_type_symbol = IN_type_symbol;
       
 25860             
       
 25861             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25862             {
       
 25863         
       
 25864                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 25865                 return return_type_symbol;
       
 25866                 
       
 25867             }
       
 25868             
       
 25869             
       
 25870             ERROR;
       
 25871         }
       
 25872         
       
 25873     }/*function_time_to_string*/
       
 25874     break;
       
 25875 
       
 25876 /****
       
 25877  *TIME_TO_LWORD
       
 25878  */
       
 25879     case function_time_to_lword :
       
 25880     {
       
 25881         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25882 
       
 25883         {
       
 25884             symbol_c *IN_type_symbol = param_data_type;
       
 25885             last_type_symbol = IN_type_symbol;
       
 25886             
       
 25887             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25888             {
       
 25889         
       
 25890                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 25891                 return return_type_symbol;
       
 25892                 
       
 25893             }
       
 25894             
       
 25895             
       
 25896             ERROR;
       
 25897         }
       
 25898         
       
 25899     }/*function_time_to_lword*/
       
 25900     break;
       
 25901 
       
 25902 /****
       
 25903  *TIME_TO_UINT
       
 25904  */
       
 25905     case function_time_to_uint :
       
 25906     {
       
 25907         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25908 
       
 25909         {
       
 25910             symbol_c *IN_type_symbol = param_data_type;
       
 25911             last_type_symbol = IN_type_symbol;
       
 25912             
       
 25913             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25914             {
       
 25915         
       
 25916                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 25917                 return return_type_symbol;
       
 25918                 
       
 25919             }
       
 25920             
       
 25921             
       
 25922             ERROR;
       
 25923         }
       
 25924         
       
 25925     }/*function_time_to_uint*/
       
 25926     break;
       
 25927 
       
 25928 /****
       
 25929  *TIME_TO_LREAL
       
 25930  */
       
 25931     case function_time_to_lreal :
       
 25932     {
       
 25933         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25934 
       
 25935         {
       
 25936             symbol_c *IN_type_symbol = param_data_type;
       
 25937             last_type_symbol = IN_type_symbol;
       
 25938             
       
 25939             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25940             {
       
 25941         
       
 25942                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 25943                 return return_type_symbol;
       
 25944                 
       
 25945             }
       
 25946             
       
 25947             
       
 25948             ERROR;
       
 25949         }
       
 25950         
       
 25951     }/*function_time_to_lreal*/
       
 25952     break;
       
 25953 
       
 25954 /****
       
 25955  *TIME_TO_BYTE
       
 25956  */
       
 25957     case function_time_to_byte :
       
 25958     {
       
 25959         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25960 
       
 25961         {
       
 25962             symbol_c *IN_type_symbol = param_data_type;
       
 25963             last_type_symbol = IN_type_symbol;
       
 25964             
       
 25965             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25966             {
       
 25967         
       
 25968                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 25969                 return return_type_symbol;
       
 25970                 
       
 25971             }
       
 25972             
       
 25973             
       
 25974             ERROR;
       
 25975         }
       
 25976         
       
 25977     }/*function_time_to_byte*/
       
 25978     break;
       
 25979 
       
 25980 /****
       
 25981  *TIME_TO_USINT
       
 25982  */
       
 25983     case function_time_to_usint :
       
 25984     {
       
 25985         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 25986 
       
 25987         {
       
 25988             symbol_c *IN_type_symbol = param_data_type;
       
 25989             last_type_symbol = IN_type_symbol;
       
 25990             
       
 25991             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 25992             {
       
 25993         
       
 25994                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 25995                 return return_type_symbol;
       
 25996                 
       
 25997             }
       
 25998             
       
 25999             
       
 26000             ERROR;
       
 26001         }
       
 26002         
       
 26003     }/*function_time_to_usint*/
       
 26004     break;
       
 26005 
       
 26006 /****
       
 26007  *TIME_TO_ULINT
       
 26008  */
       
 26009     case function_time_to_ulint :
       
 26010     {
       
 26011         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 26012 
       
 26013         {
       
 26014             symbol_c *IN_type_symbol = param_data_type;
       
 26015             last_type_symbol = IN_type_symbol;
       
 26016             
       
 26017             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 26018             {
       
 26019         
       
 26020                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 26021                 return return_type_symbol;
       
 26022                 
       
 26023             }
       
 26024             
       
 26025             
       
 26026             ERROR;
       
 26027         }
       
 26028         
       
 26029     }/*function_time_to_ulint*/
       
 26030     break;
       
 26031 
       
 26032 /****
       
 26033  *TIME_TO_INT
       
 26034  */
       
 26035     case function_time_to_int :
       
 26036     {
       
 26037         symbol_c *last_type_symbol = &search_constant_type_c::time_type_name;
       
 26038 
       
 26039         {
       
 26040             symbol_c *IN_type_symbol = param_data_type;
       
 26041             last_type_symbol = IN_type_symbol;
       
 26042             
       
 26043             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 26044             {
       
 26045         
       
 26046                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 26047                 return return_type_symbol;
       
 26048                 
       
 26049             }
       
 26050             
       
 26051             
       
 26052             ERROR;
       
 26053         }
       
 26054         
       
 26055     }/*function_time_to_int*/
       
 26056     break;
       
 26057 
       
 26058 /****
       
 26059  *INT_TO_REAL
       
 26060  */
       
 26061     case function_int_to_real :
       
 26062     {
       
 26063         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26064 
       
 26065         {
       
 26066             symbol_c *IN_type_symbol = param_data_type;
       
 26067             last_type_symbol = IN_type_symbol;
       
 26068             
       
 26069             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26070             {
       
 26071         
       
 26072                 symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
       
 26073                 return return_type_symbol;
       
 26074                 
       
 26075             }
       
 26076             
       
 26077             
       
 26078             ERROR;
       
 26079         }
       
 26080         
       
 26081     }/*function_int_to_real*/
       
 26082     break;
       
 26083 
       
 26084 /****
       
 26085  *INT_TO_SINT
       
 26086  */
       
 26087     case function_int_to_sint :
       
 26088     {
       
 26089         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26090 
       
 26091         {
       
 26092             symbol_c *IN_type_symbol = param_data_type;
       
 26093             last_type_symbol = IN_type_symbol;
       
 26094             
       
 26095             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26096             {
       
 26097         
       
 26098                 symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
       
 26099                 return return_type_symbol;
       
 26100                 
       
 26101             }
       
 26102             
       
 26103             
       
 26104             ERROR;
       
 26105         }
       
 26106         
       
 26107     }/*function_int_to_sint*/
       
 26108     break;
       
 26109 
       
 26110 /****
       
 26111  *INT_TO_LINT
       
 26112  */
       
 26113     case function_int_to_lint :
       
 26114     {
       
 26115         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26116 
       
 26117         {
       
 26118             symbol_c *IN_type_symbol = param_data_type;
       
 26119             last_type_symbol = IN_type_symbol;
       
 26120             
       
 26121             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26122             {
       
 26123         
       
 26124                 symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
       
 26125                 return return_type_symbol;
       
 26126                 
       
 26127             }
       
 26128             
       
 26129             
       
 26130             ERROR;
       
 26131         }
       
 26132         
       
 26133     }/*function_int_to_lint*/
       
 26134     break;
       
 26135 
       
 26136 /****
       
 26137  *INT_TO_DINT
       
 26138  */
       
 26139     case function_int_to_dint :
       
 26140     {
       
 26141         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26142 
       
 26143         {
       
 26144             symbol_c *IN_type_symbol = param_data_type;
       
 26145             last_type_symbol = IN_type_symbol;
       
 26146             
       
 26147             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26148             {
       
 26149         
       
 26150                 symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
       
 26151                 return return_type_symbol;
       
 26152                 
       
 26153             }
       
 26154             
       
 26155             
       
 26156             ERROR;
       
 26157         }
       
 26158         
       
 26159     }/*function_int_to_dint*/
       
 26160     break;
       
 26161 
       
 26162 /****
       
 26163  *INT_TO_DATE
       
 26164  */
       
 26165     case function_int_to_date :
       
 26166     {
       
 26167         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26168 
       
 26169         {
       
 26170             symbol_c *IN_type_symbol = param_data_type;
       
 26171             last_type_symbol = IN_type_symbol;
       
 26172             
       
 26173             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26174             {
       
 26175         
       
 26176                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 26177                 return return_type_symbol;
       
 26178                 
       
 26179             }
       
 26180             
       
 26181             
       
 26182             ERROR;
       
 26183         }
       
 26184         
       
 26185     }/*function_int_to_date*/
       
 26186     break;
       
 26187 
       
 26188 /****
       
 26189  *INT_TO_DWORD
       
 26190  */
       
 26191     case function_int_to_dword :
       
 26192     {
       
 26193         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26194 
       
 26195         {
       
 26196             symbol_c *IN_type_symbol = param_data_type;
       
 26197             last_type_symbol = IN_type_symbol;
       
 26198             
       
 26199             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26200             {
       
 26201         
       
 26202                 symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
       
 26203                 return return_type_symbol;
       
 26204                 
       
 26205             }
       
 26206             
       
 26207             
       
 26208             ERROR;
       
 26209         }
       
 26210         
       
 26211     }/*function_int_to_dword*/
       
 26212     break;
       
 26213 
       
 26214 /****
       
 26215  *INT_TO_DT
       
 26216  */
       
 26217     case function_int_to_dt :
       
 26218     {
       
 26219         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26220 
       
 26221         {
       
 26222             symbol_c *IN_type_symbol = param_data_type;
       
 26223             last_type_symbol = IN_type_symbol;
       
 26224             
       
 26225             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26226             {
       
 26227         
       
 26228                 symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 26229                 return return_type_symbol;
       
 26230                 
       
 26231             }
       
 26232             
       
 26233             
       
 26234             ERROR;
       
 26235         }
       
 26236         
       
 26237     }/*function_int_to_dt*/
       
 26238     break;
       
 26239 
       
 26240 /****
       
 26241  *INT_TO_TOD
       
 26242  */
       
 26243     case function_int_to_tod :
       
 26244     {
       
 26245         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26246 
       
 26247         {
       
 26248             symbol_c *IN_type_symbol = param_data_type;
       
 26249             last_type_symbol = IN_type_symbol;
       
 26250             
       
 26251             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26252             {
       
 26253         
       
 26254                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 26255                 return return_type_symbol;
       
 26256                 
       
 26257             }
       
 26258             
       
 26259             
       
 26260             ERROR;
       
 26261         }
       
 26262         
       
 26263     }/*function_int_to_tod*/
       
 26264     break;
       
 26265 
       
 26266 /****
       
 26267  *INT_TO_UDINT
       
 26268  */
       
 26269     case function_int_to_udint :
       
 26270     {
       
 26271         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26272 
       
 26273         {
       
 26274             symbol_c *IN_type_symbol = param_data_type;
       
 26275             last_type_symbol = IN_type_symbol;
       
 26276             
       
 26277             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26278             {
       
 26279         
       
 26280                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 26281                 return return_type_symbol;
       
 26282                 
       
 26283             }
       
 26284             
       
 26285             
       
 26286             ERROR;
       
 26287         }
       
 26288         
       
 26289     }/*function_int_to_udint*/
       
 26290     break;
       
 26291 
       
 26292 /****
       
 26293  *INT_TO_WORD
       
 26294  */
       
 26295     case function_int_to_word :
       
 26296     {
       
 26297         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26298 
       
 26299         {
       
 26300             symbol_c *IN_type_symbol = param_data_type;
       
 26301             last_type_symbol = IN_type_symbol;
       
 26302             
       
 26303             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26304             {
       
 26305         
       
 26306                 symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
       
 26307                 return return_type_symbol;
       
 26308                 
       
 26309             }
       
 26310             
       
 26311             
       
 26312             ERROR;
       
 26313         }
       
 26314         
       
 26315     }/*function_int_to_word*/
       
 26316     break;
       
 26317 
       
 26318 /****
       
 26319  *INT_TO_STRING
       
 26320  */
       
 26321     case function_int_to_string :
       
 26322     {
       
 26323         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26324 
       
 26325         {
       
 26326             symbol_c *IN_type_symbol = param_data_type;
       
 26327             last_type_symbol = IN_type_symbol;
       
 26328             
       
 26329             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26330             {
       
 26331         
       
 26332                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 26333                 return return_type_symbol;
       
 26334                 
       
 26335             }
       
 26336             
       
 26337             
       
 26338             ERROR;
       
 26339         }
       
 26340         
       
 26341     }/*function_int_to_string*/
       
 26342     break;
       
 26343 
       
 26344 /****
       
 26345  *INT_TO_LWORD
       
 26346  */
       
 26347     case function_int_to_lword :
       
 26348     {
       
 26349         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26350 
       
 26351         {
       
 26352             symbol_c *IN_type_symbol = param_data_type;
       
 26353             last_type_symbol = IN_type_symbol;
       
 26354             
       
 26355             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26356             {
       
 26357         
       
 26358                 symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
       
 26359                 return return_type_symbol;
       
 26360                 
       
 26361             }
       
 26362             
       
 26363             
       
 26364             ERROR;
       
 26365         }
       
 26366         
       
 26367     }/*function_int_to_lword*/
       
 26368     break;
       
 26369 
       
 26370 /****
       
 26371  *INT_TO_UINT
       
 26372  */
       
 26373     case function_int_to_uint :
       
 26374     {
       
 26375         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26376 
       
 26377         {
       
 26378             symbol_c *IN_type_symbol = param_data_type;
       
 26379             last_type_symbol = IN_type_symbol;
       
 26380             
       
 26381             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26382             {
       
 26383         
       
 26384                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 26385                 return return_type_symbol;
       
 26386                 
       
 26387             }
       
 26388             
       
 26389             
       
 26390             ERROR;
       
 26391         }
       
 26392         
       
 26393     }/*function_int_to_uint*/
       
 26394     break;
       
 26395 
       
 26396 /****
       
 26397  *INT_TO_LREAL
       
 26398  */
       
 26399     case function_int_to_lreal :
       
 26400     {
       
 26401         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26402 
       
 26403         {
       
 26404             symbol_c *IN_type_symbol = param_data_type;
       
 26405             last_type_symbol = IN_type_symbol;
       
 26406             
       
 26407             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26408             {
       
 26409         
       
 26410                 symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
       
 26411                 return return_type_symbol;
       
 26412                 
       
 26413             }
       
 26414             
       
 26415             
       
 26416             ERROR;
       
 26417         }
       
 26418         
       
 26419     }/*function_int_to_lreal*/
       
 26420     break;
       
 26421 
       
 26422 /****
       
 26423  *INT_TO_BYTE
       
 26424  */
       
 26425     case function_int_to_byte :
       
 26426     {
       
 26427         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26428 
       
 26429         {
       
 26430             symbol_c *IN_type_symbol = param_data_type;
       
 26431             last_type_symbol = IN_type_symbol;
       
 26432             
       
 26433             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26434             {
       
 26435         
       
 26436                 symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
       
 26437                 return return_type_symbol;
       
 26438                 
       
 26439             }
       
 26440             
       
 26441             
       
 26442             ERROR;
       
 26443         }
       
 26444         
       
 26445     }/*function_int_to_byte*/
       
 26446     break;
       
 26447 
       
 26448 /****
       
 26449  *INT_TO_USINT
       
 26450  */
       
 26451     case function_int_to_usint :
       
 26452     {
       
 26453         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26454 
       
 26455         {
       
 26456             symbol_c *IN_type_symbol = param_data_type;
       
 26457             last_type_symbol = IN_type_symbol;
       
 26458             
       
 26459             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26460             {
       
 26461         
       
 26462                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 26463                 return return_type_symbol;
       
 26464                 
       
 26465             }
       
 26466             
       
 26467             
       
 26468             ERROR;
       
 26469         }
       
 26470         
       
 26471     }/*function_int_to_usint*/
       
 26472     break;
       
 26473 
       
 26474 /****
       
 26475  *INT_TO_ULINT
       
 26476  */
       
 26477     case function_int_to_ulint :
       
 26478     {
       
 26479         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26480 
       
 26481         {
       
 26482             symbol_c *IN_type_symbol = param_data_type;
       
 26483             last_type_symbol = IN_type_symbol;
       
 26484             
       
 26485             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26486             {
       
 26487         
       
 26488                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 26489                 return return_type_symbol;
       
 26490                 
       
 26491             }
       
 26492             
       
 26493             
       
 26494             ERROR;
       
 26495         }
       
 26496         
       
 26497     }/*function_int_to_ulint*/
       
 26498     break;
       
 26499 
       
 26500 /****
       
 26501  *INT_TO_BOOL
       
 26502  */
       
 26503     case function_int_to_bool :
       
 26504     {
       
 26505         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26506 
       
 26507         {
       
 26508             symbol_c *IN_type_symbol = param_data_type;
       
 26509             last_type_symbol = IN_type_symbol;
       
 26510             
       
 26511             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26512             {
       
 26513         
       
 26514                 symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 26515                 return return_type_symbol;
       
 26516                 
       
 26517             }
       
 26518             
       
 26519             
       
 26520             ERROR;
       
 26521         }
       
 26522         
       
 26523     }/*function_int_to_bool*/
       
 26524     break;
       
 26525 
       
 26526 /****
       
 26527  *INT_TO_TIME
       
 26528  */
       
 26529     case function_int_to_time :
       
 26530     {
       
 26531         symbol_c *last_type_symbol = &search_constant_type_c::int_type_name;
       
 26532 
       
 26533         {
       
 26534             symbol_c *IN_type_symbol = param_data_type;
       
 26535             last_type_symbol = IN_type_symbol;
       
 26536             
       
 26537             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
       
 26538             {
       
 26539         
       
 26540                 symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 26541                 return return_type_symbol;
       
 26542                 
       
 26543             }
       
 26544             
       
 26545             
       
 26546             ERROR;
       
 26547         }
       
 26548         
       
 26549     }/*function_int_to_time*/
       
 26550     break;
       
 26551 
       
 26552 /****
       
 26553  *TRUNC
       
 26554  */
       
 26555     case function_trunc :
       
 26556     {
       
 26557         symbol_c *last_type_symbol = NULL;
       
 26558 
       
 26559         {
       
 26560             symbol_c *IN_type_symbol = param_data_type;
       
 26561             last_type_symbol = IN_type_symbol;
       
 26562             
       
 26563             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26564             {
       
 26565         
       
 26566                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 26567                 return return_type_symbol;
       
 26568                 
       
 26569             }
       
 26570             
       
 26571             
       
 26572             ERROR;
       
 26573         }
       
 26574         
       
 26575     }/*function_trunc*/
       
 26576     break;
       
 26577 
       
 26578 /****
       
 26579  *BCD_TO_UDINT
       
 26580  */
       
 26581     case function_bcd_to_udint :
       
 26582     {
       
 26583         symbol_c *last_type_symbol = &search_constant_type_c::dword_type_name;
       
 26584 
       
 26585         {
       
 26586             symbol_c *IN_type_symbol = param_data_type;
       
 26587             last_type_symbol = IN_type_symbol;
       
 26588             
       
 26589             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
       
 26590             {
       
 26591         
       
 26592                 symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
       
 26593                 return return_type_symbol;
       
 26594                 
       
 26595             }
       
 26596             
       
 26597             
       
 26598             ERROR;
       
 26599         }
       
 26600         
       
 26601     }/*function_bcd_to_udint*/
       
 26602     break;
       
 26603 
       
 26604 /****
       
 26605  *BCD_TO_UINT
       
 26606  */
       
 26607     case function_bcd_to_uint :
       
 26608     {
       
 26609         symbol_c *last_type_symbol = &search_constant_type_c::word_type_name;
       
 26610 
       
 26611         {
       
 26612             symbol_c *IN_type_symbol = param_data_type;
       
 26613             last_type_symbol = IN_type_symbol;
       
 26614             
       
 26615             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
       
 26616             {
       
 26617         
       
 26618                 symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
       
 26619                 return return_type_symbol;
       
 26620                 
       
 26621             }
       
 26622             
       
 26623             
       
 26624             ERROR;
       
 26625         }
       
 26626         
       
 26627     }/*function_bcd_to_uint*/
       
 26628     break;
       
 26629 
       
 26630 /****
       
 26631  *BCD_TO_ULINT
       
 26632  */
       
 26633     case function_bcd_to_ulint :
       
 26634     {
       
 26635         symbol_c *last_type_symbol = &search_constant_type_c::lword_type_name;
       
 26636 
       
 26637         {
       
 26638             symbol_c *IN_type_symbol = param_data_type;
       
 26639             last_type_symbol = IN_type_symbol;
       
 26640             
       
 26641             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
       
 26642             {
       
 26643         
       
 26644                 symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
       
 26645                 return return_type_symbol;
       
 26646                 
       
 26647             }
       
 26648             
       
 26649             
       
 26650             ERROR;
       
 26651         }
       
 26652         
       
 26653     }/*function_bcd_to_ulint*/
       
 26654     break;
       
 26655 
       
 26656 /****
       
 26657  *BCD_TO_USINT
       
 26658  */
       
 26659     case function_bcd_to_usint :
       
 26660     {
       
 26661         symbol_c *last_type_symbol = &search_constant_type_c::byte_type_name;
       
 26662 
       
 26663         {
       
 26664             symbol_c *IN_type_symbol = param_data_type;
       
 26665             last_type_symbol = IN_type_symbol;
       
 26666             
       
 26667             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
       
 26668             {
       
 26669         
       
 26670                 symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
       
 26671                 return return_type_symbol;
       
 26672                 
       
 26673             }
       
 26674             
       
 26675             
       
 26676             ERROR;
       
 26677         }
       
 26678         
       
 26679     }/*function_bcd_to_usint*/
       
 26680     break;
       
 26681 
       
 26682 /****
       
 26683  *UDINT_TO_BCD
       
 26684  */
       
 26685     case function_udint_to_bcd :
       
 26686     {
       
 26687         symbol_c *last_type_symbol = &search_constant_type_c::udint_type_name;
       
 26688 
       
 26689         {
       
 26690             symbol_c *IN_type_symbol = param_data_type;
       
 26691             last_type_symbol = IN_type_symbol;
       
 26692             
       
 26693             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
       
 26694             {
       
 26695         
       
 26696                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 26697                 return return_type_symbol;
       
 26698                 
       
 26699             }
       
 26700             
       
 26701             
       
 26702             ERROR;
       
 26703         }
       
 26704         
       
 26705     }/*function_udint_to_bcd*/
       
 26706     break;
       
 26707 
       
 26708 /****
       
 26709  *UINT_TO_BCD
       
 26710  */
       
 26711     case function_uint_to_bcd :
       
 26712     {
       
 26713         symbol_c *last_type_symbol = &search_constant_type_c::uint_type_name;
       
 26714 
       
 26715         {
       
 26716             symbol_c *IN_type_symbol = param_data_type;
       
 26717             last_type_symbol = IN_type_symbol;
       
 26718             
       
 26719             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
       
 26720             {
       
 26721         
       
 26722                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 26723                 return return_type_symbol;
       
 26724                 
       
 26725             }
       
 26726             
       
 26727             
       
 26728             ERROR;
       
 26729         }
       
 26730         
       
 26731     }/*function_uint_to_bcd*/
       
 26732     break;
       
 26733 
       
 26734 /****
       
 26735  *USINT_TO_BCD
       
 26736  */
       
 26737     case function_usint_to_bcd :
       
 26738     {
       
 26739         symbol_c *last_type_symbol = &search_constant_type_c::usint_type_name;
       
 26740 
       
 26741         {
       
 26742             symbol_c *IN_type_symbol = param_data_type;
       
 26743             last_type_symbol = IN_type_symbol;
       
 26744             
       
 26745             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
       
 26746             {
       
 26747         
       
 26748                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 26749                 return return_type_symbol;
       
 26750                 
       
 26751             }
       
 26752             
       
 26753             
       
 26754             ERROR;
       
 26755         }
       
 26756         
       
 26757     }/*function_usint_to_bcd*/
       
 26758     break;
       
 26759 
       
 26760 /****
       
 26761  *ULINT_TO_BCD
       
 26762  */
       
 26763     case function_ulint_to_bcd :
       
 26764     {
       
 26765         symbol_c *last_type_symbol = &search_constant_type_c::ulint_type_name;
       
 26766 
       
 26767         {
       
 26768             symbol_c *IN_type_symbol = param_data_type;
       
 26769             last_type_symbol = IN_type_symbol;
       
 26770             
       
 26771             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
       
 26772             {
       
 26773         
       
 26774                 symbol_c * return_type_symbol = &search_constant_type_c::integer;
       
 26775                 return return_type_symbol;
       
 26776                 
       
 26777             }
       
 26778             
       
 26779             
       
 26780             ERROR;
       
 26781         }
       
 26782         
       
 26783     }/*function_ulint_to_bcd*/
       
 26784     break;
       
 26785 
       
 26786 /****
       
 26787  *DATE_AND_TIME_TO_TIME_OF_DAY
       
 26788  */
       
 26789     case function_date_and_time_to_time_of_day :
       
 26790     {
       
 26791         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 26792 
       
 26793         {
       
 26794             symbol_c *IN_type_symbol = param_data_type;
       
 26795             last_type_symbol = IN_type_symbol;
       
 26796             
       
 26797             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 26798             {
       
 26799         
       
 26800                 symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 26801                 return return_type_symbol;
       
 26802                 
       
 26803             }
       
 26804             
       
 26805             
       
 26806             ERROR;
       
 26807         }
       
 26808         
       
 26809     }/*function_date_and_time_to_time_of_day*/
       
 26810     break;
       
 26811 
       
 26812 /****
       
 26813  *DATE_AND_TIME_TO_DATE
       
 26814  */
       
 26815     case function_date_and_time_to_date :
       
 26816     {
       
 26817         symbol_c *last_type_symbol = &search_constant_type_c::dt_type_name;
       
 26818 
       
 26819         {
       
 26820             symbol_c *IN_type_symbol = param_data_type;
       
 26821             last_type_symbol = IN_type_symbol;
       
 26822             
       
 26823             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 26824             {
       
 26825         
       
 26826                 symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
       
 26827                 return return_type_symbol;
       
 26828                 
       
 26829             }
       
 26830             
       
 26831             
       
 26832             ERROR;
       
 26833         }
       
 26834         
       
 26835     }/*function_date_and_time_to_date*/
       
 26836     break;
       
 26837 
       
 26838 /****
       
 26839  *ABS
       
 26840  */
       
 26841     case function_abs :
       
 26842     {
       
 26843         symbol_c *last_type_symbol = NULL;
       
 26844 
       
 26845         {
       
 26846             symbol_c *IN_type_symbol = param_data_type;
       
 26847             last_type_symbol = IN_type_symbol;
       
 26848             
       
 26849             if(IN_type_symbol == NULL || search_expression_type->is_num_type(IN_type_symbol))
       
 26850             {
       
 26851         
       
 26852                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26853                 return return_type_symbol;
       
 26854                 
       
 26855             }
       
 26856             
       
 26857             
       
 26858             ERROR;
       
 26859         }
       
 26860         
       
 26861     }/*function_abs*/
       
 26862     break;
       
 26863 
       
 26864 /****
       
 26865  *SQRT
       
 26866  */
       
 26867     case function_sqrt :
       
 26868     {
       
 26869         symbol_c *last_type_symbol = NULL;
       
 26870 
       
 26871         {
       
 26872             symbol_c *IN_type_symbol = param_data_type;
       
 26873             last_type_symbol = IN_type_symbol;
       
 26874             
       
 26875             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26876             {
       
 26877         
       
 26878                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26879                 return return_type_symbol;
       
 26880                 
       
 26881             }
       
 26882             
       
 26883             
       
 26884             ERROR;
       
 26885         }
       
 26886         
       
 26887     }/*function_sqrt*/
       
 26888     break;
       
 26889 
       
 26890 /****
       
 26891  *LN
       
 26892  */
       
 26893     case function_ln :
       
 26894     {
       
 26895         symbol_c *last_type_symbol = NULL;
       
 26896 
       
 26897         {
       
 26898             symbol_c *IN_type_symbol = param_data_type;
       
 26899             last_type_symbol = IN_type_symbol;
       
 26900             
       
 26901             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26902             {
       
 26903         
       
 26904                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26905                 return return_type_symbol;
       
 26906                 
       
 26907             }
       
 26908             
       
 26909             
       
 26910             ERROR;
       
 26911         }
       
 26912         
       
 26913     }/*function_ln*/
       
 26914     break;
       
 26915 
       
 26916 /****
       
 26917  *LOG
       
 26918  */
       
 26919     case function_log :
       
 26920     {
       
 26921         symbol_c *last_type_symbol = NULL;
       
 26922 
       
 26923         {
       
 26924             symbol_c *IN_type_symbol = param_data_type;
       
 26925             last_type_symbol = IN_type_symbol;
       
 26926             
       
 26927             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26928             {
       
 26929         
       
 26930                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26931                 return return_type_symbol;
       
 26932                 
       
 26933             }
       
 26934             
       
 26935             
       
 26936             ERROR;
       
 26937         }
       
 26938         
       
 26939     }/*function_log*/
       
 26940     break;
       
 26941 
       
 26942 /****
       
 26943  *EXP
       
 26944  */
       
 26945     case function_exp :
       
 26946     {
       
 26947         symbol_c *last_type_symbol = NULL;
       
 26948 
       
 26949         {
       
 26950             symbol_c *IN_type_symbol = param_data_type;
       
 26951             last_type_symbol = IN_type_symbol;
       
 26952             
       
 26953             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26954             {
       
 26955         
       
 26956                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26957                 return return_type_symbol;
       
 26958                 
       
 26959             }
       
 26960             
       
 26961             
       
 26962             ERROR;
       
 26963         }
       
 26964         
       
 26965     }/*function_exp*/
       
 26966     break;
       
 26967 
       
 26968 /****
       
 26969  *SIN
       
 26970  */
       
 26971     case function_sin :
       
 26972     {
       
 26973         symbol_c *last_type_symbol = NULL;
       
 26974 
       
 26975         {
       
 26976             symbol_c *IN_type_symbol = param_data_type;
       
 26977             last_type_symbol = IN_type_symbol;
       
 26978             
       
 26979             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 26980             {
       
 26981         
       
 26982                 symbol_c * return_type_symbol = IN_type_symbol;
       
 26983                 return return_type_symbol;
       
 26984                 
       
 26985             }
       
 26986             
       
 26987             
       
 26988             ERROR;
       
 26989         }
       
 26990         
       
 26991     }/*function_sin*/
       
 26992     break;
       
 26993 
       
 26994 /****
       
 26995  *COS
       
 26996  */
       
 26997     case function_cos :
       
 26998     {
       
 26999         symbol_c *last_type_symbol = NULL;
       
 27000 
       
 27001         {
       
 27002             symbol_c *IN_type_symbol = param_data_type;
       
 27003             last_type_symbol = IN_type_symbol;
       
 27004             
       
 27005             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 27006             {
       
 27007         
       
 27008                 symbol_c * return_type_symbol = IN_type_symbol;
       
 27009                 return return_type_symbol;
       
 27010                 
       
 27011             }
       
 27012             
       
 27013             
       
 27014             ERROR;
       
 27015         }
       
 27016         
       
 27017     }/*function_cos*/
       
 27018     break;
       
 27019 
       
 27020 /****
       
 27021  *TAN
       
 27022  */
       
 27023     case function_tan :
       
 27024     {
       
 27025         symbol_c *last_type_symbol = NULL;
       
 27026 
       
 27027         {
       
 27028             symbol_c *IN_type_symbol = param_data_type;
       
 27029             last_type_symbol = IN_type_symbol;
       
 27030             
       
 27031             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 27032             {
       
 27033         
       
 27034                 symbol_c * return_type_symbol = IN_type_symbol;
       
 27035                 return return_type_symbol;
       
 27036                 
       
 27037             }
       
 27038             
       
 27039             
       
 27040             ERROR;
       
 27041         }
       
 27042         
       
 27043     }/*function_tan*/
       
 27044     break;
       
 27045 
       
 27046 /****
       
 27047  *ASIN
       
 27048  */
       
 27049     case function_asin :
       
 27050     {
       
 27051         symbol_c *last_type_symbol = NULL;
       
 27052 
       
 27053         {
       
 27054             symbol_c *IN_type_symbol = param_data_type;
       
 27055             last_type_symbol = IN_type_symbol;
       
 27056             
       
 27057             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 27058             {
       
 27059         
       
 27060                 symbol_c * return_type_symbol = IN_type_symbol;
       
 27061                 return return_type_symbol;
       
 27062                 
       
 27063             }
       
 27064             
       
 27065             
       
 27066             ERROR;
       
 27067         }
       
 27068         
       
 27069     }/*function_asin*/
       
 27070     break;
       
 27071 
       
 27072 /****
       
 27073  *ACOS
       
 27074  */
       
 27075     case function_acos :
       
 27076     {
       
 27077         symbol_c *last_type_symbol = NULL;
       
 27078 
       
 27079         {
       
 27080             symbol_c *IN_type_symbol = param_data_type;
       
 27081             last_type_symbol = IN_type_symbol;
       
 27082             
       
 27083             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 27084             {
       
 27085         
       
 27086                 symbol_c * return_type_symbol = IN_type_symbol;
       
 27087                 return return_type_symbol;
       
 27088                 
       
 27089             }
       
 27090             
       
 27091             
       
 27092             ERROR;
       
 27093         }
       
 27094         
       
 27095     }/*function_acos*/
       
 27096     break;
       
 27097 
       
 27098 /****
       
 27099  *ATAN
       
 27100  */
       
 27101     case function_atan :
       
 27102     {
       
 27103         symbol_c *last_type_symbol = NULL;
       
 27104 
       
 27105         {
       
 27106             symbol_c *IN_type_symbol = param_data_type;
       
 27107             last_type_symbol = IN_type_symbol;
       
 27108             
       
 27109             if(IN_type_symbol == NULL || search_expression_type->is_real_type(IN_type_symbol))
       
 27110             {
       
 27111         
       
 27112                 symbol_c * return_type_symbol = IN_type_symbol;
       
 27113                 return return_type_symbol;
       
 27114                 
       
 27115             }
       
 27116             
       
 27117             
       
 27118             ERROR;
       
 27119         }
       
 27120         
       
 27121     }/*function_atan*/
       
 27122     break;
       
 27123 
       
 27124 /****
       
 27125  *ADD
       
 27126  */
       
 27127     case function_add :
       
 27128     {
       
 27129         symbol_c *last_type_symbol = NULL;
       
 27130 
       
 27131         {
       
 27132             symbol_c *IN1_type_symbol = param_data_type;
       
 27133             last_type_symbol = IN1_type_symbol;
       
 27134             
       
 27135             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 27136             {
       
 27137         
       
 27138                 {
       
 27139                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27140                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27141                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27142                     symbol_c *IN2_type_symbol = NULL;
       
 27143                     
       
 27144                     /* Get the value from a foo(<param_value>) style call */
       
 27145                     if (IN2_param_value == NULL)
       
 27146                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27147                     if (IN2_param_value != NULL) {
       
 27148                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27149                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27150                     }
       
 27151                     
       
 27152                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27153                     {
       
 27154                 
       
 27155                         symbol_c * return_type_symbol = last_type_symbol;
       
 27156                         return return_type_symbol;
       
 27157                         
       
 27158                     }
       
 27159                     
       
 27160                     
       
 27161                     ERROR;
       
 27162                 }
       
 27163                 
       
 27164             }
       
 27165             
       
 27166             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 27167             {
       
 27168         
       
 27169                 {
       
 27170                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27171                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27172                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27173                     symbol_c *IN2_type_symbol = NULL;
       
 27174                     
       
 27175                     /* Get the value from a foo(<param_value>) style call */
       
 27176                     if (IN2_param_value == NULL)
       
 27177                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27178                     if (IN2_param_value != NULL) {
       
 27179                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27180                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27181                     }
       
 27182                     
       
 27183                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27184                     {
       
 27185                 
       
 27186                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 27187                         return return_type_symbol;
       
 27188                         
       
 27189                     }
       
 27190                     
       
 27191                     
       
 27192                     ERROR;
       
 27193                 }
       
 27194                 
       
 27195             }
       
 27196             
       
 27197             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 27198             {
       
 27199         
       
 27200                 {
       
 27201                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27202                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27203                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27204                     symbol_c *IN2_type_symbol = NULL;
       
 27205                     
       
 27206                     /* Get the value from a foo(<param_value>) style call */
       
 27207                     if (IN2_param_value == NULL)
       
 27208                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27209                     if (IN2_param_value != NULL) {
       
 27210                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27211                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27212                     }
       
 27213                     
       
 27214                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27215                     {
       
 27216                 
       
 27217                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 27218                         return return_type_symbol;
       
 27219                         
       
 27220                     }
       
 27221                     
       
 27222                     
       
 27223                     ERROR;
       
 27224                 }
       
 27225                 
       
 27226             }
       
 27227             
       
 27228             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27229             {
       
 27230         
       
 27231                 {
       
 27232                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27233                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27234                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27235                     symbol_c *IN2_type_symbol = NULL;
       
 27236                     
       
 27237                     /* Get the value from a foo(<param_value>) style call */
       
 27238                     if (IN2_param_value == NULL)
       
 27239                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27240                     if (IN2_param_value != NULL) {
       
 27241                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27242                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27243                     }
       
 27244                     
       
 27245                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27246                     {
       
 27247                 
       
 27248                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27249                         return return_type_symbol;
       
 27250                         
       
 27251                     }
       
 27252                     
       
 27253                     
       
 27254                     ERROR;
       
 27255                 }
       
 27256                 
       
 27257             }
       
 27258             
       
 27259             
       
 27260             ERROR;
       
 27261         }
       
 27262         
       
 27263     }/*function_add*/
       
 27264     break;
       
 27265 
       
 27266 /****
       
 27267  *MUL
       
 27268  */
       
 27269     case function_mul :
       
 27270     {
       
 27271         symbol_c *last_type_symbol = NULL;
       
 27272 
       
 27273         {
       
 27274             symbol_c *IN1_type_symbol = param_data_type;
       
 27275             last_type_symbol = IN1_type_symbol;
       
 27276             
       
 27277             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 27278             {
       
 27279         
       
 27280                 {
       
 27281                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27282                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27283                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27284                     symbol_c *IN2_type_symbol = NULL;
       
 27285                     
       
 27286                     /* Get the value from a foo(<param_value>) style call */
       
 27287                     if (IN2_param_value == NULL)
       
 27288                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27289                     if (IN2_param_value != NULL) {
       
 27290                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27291                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27292                     }
       
 27293                     
       
 27294                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27295                     {
       
 27296                 
       
 27297                         symbol_c * return_type_symbol = last_type_symbol;
       
 27298                         return return_type_symbol;
       
 27299                         
       
 27300                     }
       
 27301                     
       
 27302                     
       
 27303                     ERROR;
       
 27304                 }
       
 27305                 
       
 27306             }
       
 27307             
       
 27308             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27309             {
       
 27310         
       
 27311                 {
       
 27312                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27313                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27314                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27315                     symbol_c *IN2_type_symbol = NULL;
       
 27316                     
       
 27317                     /* Get the value from a foo(<param_value>) style call */
       
 27318                     if (IN2_param_value == NULL)
       
 27319                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27320                     if (IN2_param_value != NULL) {
       
 27321                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27322                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27323                     }
       
 27324                     
       
 27325                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27326                     {
       
 27327                 
       
 27328                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27329                         return return_type_symbol;
       
 27330                         
       
 27331                     }
       
 27332                     
       
 27333                     
       
 27334                     ERROR;
       
 27335                 }
       
 27336                 
       
 27337             }
       
 27338             
       
 27339             
       
 27340             ERROR;
       
 27341         }
       
 27342         
       
 27343     }/*function_mul*/
       
 27344     break;
       
 27345 
       
 27346 /****
       
 27347  *SUB
       
 27348  */
       
 27349     case function_sub :
       
 27350     {
       
 27351         symbol_c *last_type_symbol = NULL;
       
 27352 
       
 27353         {
       
 27354             symbol_c *IN1_type_symbol = param_data_type;
       
 27355             last_type_symbol = IN1_type_symbol;
       
 27356             
       
 27357             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 27358             {
       
 27359         
       
 27360                 {
       
 27361                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27362                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27363                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27364                     symbol_c *IN2_type_symbol = NULL;
       
 27365                     
       
 27366                     /* Get the value from a foo(<param_value>) style call */
       
 27367                     if (IN2_param_value == NULL)
       
 27368                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27369                     if (IN2_param_value != NULL) {
       
 27370                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27371                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27372                     }
       
 27373                     
       
 27374                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27375                     {
       
 27376                 
       
 27377                         symbol_c * return_type_symbol = last_type_symbol;
       
 27378                         return return_type_symbol;
       
 27379                         
       
 27380                     }
       
 27381                     
       
 27382                     
       
 27383                     ERROR;
       
 27384                 }
       
 27385                 
       
 27386             }
       
 27387             
       
 27388             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 27389             {
       
 27390         
       
 27391                 {
       
 27392                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27393                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27394                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27395                     symbol_c *IN2_type_symbol = NULL;
       
 27396                     
       
 27397                     /* Get the value from a foo(<param_value>) style call */
       
 27398                     if (IN2_param_value == NULL)
       
 27399                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27400                     if (IN2_param_value != NULL) {
       
 27401                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27402                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27403                     }
       
 27404                     
       
 27405                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 27406                     {
       
 27407                 
       
 27408                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27409                         return return_type_symbol;
       
 27410                         
       
 27411                     }
       
 27412                     
       
 27413                     
       
 27414                     ERROR;
       
 27415                 }
       
 27416                 
       
 27417             }
       
 27418             
       
 27419             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 27420             {
       
 27421         
       
 27422                 {
       
 27423                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27424                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27425                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27426                     symbol_c *IN2_type_symbol = NULL;
       
 27427                     
       
 27428                     /* Get the value from a foo(<param_value>) style call */
       
 27429                     if (IN2_param_value == NULL)
       
 27430                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27431                     if (IN2_param_value != NULL) {
       
 27432                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27433                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27434                     }
       
 27435                     
       
 27436                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 27437                     {
       
 27438                 
       
 27439                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27440                         return return_type_symbol;
       
 27441                         
       
 27442                     }
       
 27443                     
       
 27444                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27445                     {
       
 27446                 
       
 27447                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 27448                         return return_type_symbol;
       
 27449                         
       
 27450                     }
       
 27451                     
       
 27452                     
       
 27453                     ERROR;
       
 27454                 }
       
 27455                 
       
 27456             }
       
 27457             
       
 27458             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 27459             {
       
 27460         
       
 27461                 {
       
 27462                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27463                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27464                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27465                     symbol_c *IN2_type_symbol = NULL;
       
 27466                     
       
 27467                     /* Get the value from a foo(<param_value>) style call */
       
 27468                     if (IN2_param_value == NULL)
       
 27469                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27470                     if (IN2_param_value != NULL) {
       
 27471                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27472                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27473                     }
       
 27474                     
       
 27475                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 27476                     {
       
 27477                 
       
 27478                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27479                         return return_type_symbol;
       
 27480                         
       
 27481                     }
       
 27482                     
       
 27483                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27484                     {
       
 27485                 
       
 27486                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 27487                         return return_type_symbol;
       
 27488                         
       
 27489                     }
       
 27490                     
       
 27491                     
       
 27492                     ERROR;
       
 27493                 }
       
 27494                 
       
 27495             }
       
 27496             
       
 27497             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27498             {
       
 27499         
       
 27500                 {
       
 27501                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27502                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27503                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27504                     symbol_c *IN2_type_symbol = NULL;
       
 27505                     
       
 27506                     /* Get the value from a foo(<param_value>) style call */
       
 27507                     if (IN2_param_value == NULL)
       
 27508                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27509                     if (IN2_param_value != NULL) {
       
 27510                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27511                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27512                     }
       
 27513                     
       
 27514                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27515                     {
       
 27516                 
       
 27517                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27518                         return return_type_symbol;
       
 27519                         
       
 27520                     }
       
 27521                     
       
 27522                     
       
 27523                     ERROR;
       
 27524                 }
       
 27525                 
       
 27526             }
       
 27527             
       
 27528             
       
 27529             ERROR;
       
 27530         }
       
 27531         
       
 27532     }/*function_sub*/
       
 27533     break;
       
 27534 
       
 27535 /****
       
 27536  *DIV
       
 27537  */
       
 27538     case function_div :
       
 27539     {
       
 27540         symbol_c *last_type_symbol = NULL;
       
 27541 
       
 27542         {
       
 27543             symbol_c *IN1_type_symbol = param_data_type;
       
 27544             last_type_symbol = IN1_type_symbol;
       
 27545             
       
 27546             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 27547             {
       
 27548         
       
 27549                 {
       
 27550                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27551                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27552                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27553                     symbol_c *IN2_type_symbol = NULL;
       
 27554                     
       
 27555                     /* Get the value from a foo(<param_value>) style call */
       
 27556                     if (IN2_param_value == NULL)
       
 27557                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27558                     if (IN2_param_value != NULL) {
       
 27559                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27560                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27561                     }
       
 27562                     
       
 27563                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27564                     {
       
 27565                 
       
 27566                         symbol_c * return_type_symbol = last_type_symbol;
       
 27567                         return return_type_symbol;
       
 27568                         
       
 27569                     }
       
 27570                     
       
 27571                     
       
 27572                     ERROR;
       
 27573                 }
       
 27574                 
       
 27575             }
       
 27576             
       
 27577             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27578             {
       
 27579         
       
 27580                 {
       
 27581                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27582                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27583                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27584                     symbol_c *IN2_type_symbol = NULL;
       
 27585                     
       
 27586                     /* Get the value from a foo(<param_value>) style call */
       
 27587                     if (IN2_param_value == NULL)
       
 27588                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27589                     if (IN2_param_value != NULL) {
       
 27590                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27591                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27592                     }
       
 27593                     
       
 27594                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27595                     {
       
 27596                 
       
 27597                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27598                         return return_type_symbol;
       
 27599                         
       
 27600                     }
       
 27601                     
       
 27602                     
       
 27603                     ERROR;
       
 27604                 }
       
 27605                 
       
 27606             }
       
 27607             
       
 27608             
       
 27609             ERROR;
       
 27610         }
       
 27611         
       
 27612     }/*function_div*/
       
 27613     break;
       
 27614 
       
 27615 /****
       
 27616  *MOD
       
 27617  */
       
 27618     case function_mod :
       
 27619     {
       
 27620         symbol_c *last_type_symbol = NULL;
       
 27621 
       
 27622         {
       
 27623             symbol_c *IN1_type_symbol = param_data_type;
       
 27624             last_type_symbol = IN1_type_symbol;
       
 27625             
       
 27626             if(IN1_type_symbol == NULL || search_expression_type->is_num_type(IN1_type_symbol))
       
 27627             {
       
 27628         
       
 27629                 {
       
 27630                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27631                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27632                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27633                     symbol_c *IN2_type_symbol = NULL;
       
 27634                     
       
 27635                     /* Get the value from a foo(<param_value>) style call */
       
 27636                     if (IN2_param_value == NULL)
       
 27637                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27638                     if (IN2_param_value != NULL) {
       
 27639                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27640                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27641                     }
       
 27642                     
       
 27643                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27644                     {
       
 27645                 
       
 27646                         symbol_c * return_type_symbol = last_type_symbol;
       
 27647                         return return_type_symbol;
       
 27648                         
       
 27649                     }
       
 27650                     
       
 27651                     
       
 27652                     ERROR;
       
 27653                 }
       
 27654                 
       
 27655             }
       
 27656             
       
 27657             
       
 27658             ERROR;
       
 27659         }
       
 27660         
       
 27661     }/*function_mod*/
       
 27662     break;
       
 27663 
       
 27664 /****
       
 27665  *EXPT
       
 27666  */
       
 27667     case function_expt :
       
 27668     {
       
 27669         symbol_c *last_type_symbol = NULL;
       
 27670 
       
 27671         {
       
 27672             symbol_c *IN1_type_symbol = param_data_type;
       
 27673             last_type_symbol = IN1_type_symbol;
       
 27674             
       
 27675             if(IN1_type_symbol == NULL || search_expression_type->is_real_type(IN1_type_symbol))
       
 27676             {
       
 27677         
       
 27678                 {
       
 27679                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27680                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27681                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27682                     symbol_c *IN2_type_symbol = NULL;
       
 27683                     
       
 27684                     /* Get the value from a foo(<param_value>) style call */
       
 27685                     if (IN2_param_value == NULL)
       
 27686                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27687                     if (IN2_param_value != NULL) {
       
 27688                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27689                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27690                     }
       
 27691                     
       
 27692                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27693                     {
       
 27694                 
       
 27695                         symbol_c * return_type_symbol = IN1_type_symbol;
       
 27696                         return return_type_symbol;
       
 27697                         
       
 27698                     }
       
 27699                     
       
 27700                     
       
 27701                     ERROR;
       
 27702                 }
       
 27703                 
       
 27704             }
       
 27705             
       
 27706             
       
 27707             ERROR;
       
 27708         }
       
 27709         
       
 27710     }/*function_expt*/
       
 27711     break;
       
 27712 
       
 27713 /****
       
 27714  *MOVE
       
 27715  */
       
 27716     case function_move :
       
 27717     {
       
 27718         symbol_c *last_type_symbol = NULL;
       
 27719 
       
 27720         {
       
 27721             symbol_c *IN_type_symbol = param_data_type;
       
 27722             last_type_symbol = IN_type_symbol;
       
 27723             
       
 27724             
       
 27725             {
       
 27726         
       
 27727                 symbol_c * return_type_symbol = last_type_symbol;
       
 27728                 return return_type_symbol;
       
 27729                 
       
 27730             }
       
 27731             
       
 27732             
       
 27733             ERROR;
       
 27734         }
       
 27735         
       
 27736     }/*function_move*/
       
 27737     break;
       
 27738 
       
 27739 /****
       
 27740  *ADD_TIME
       
 27741  */
       
 27742     case function_add_time :
       
 27743     {
       
 27744         symbol_c *last_type_symbol = NULL;
       
 27745 
       
 27746         {
       
 27747             symbol_c *IN1_type_symbol = param_data_type;
       
 27748             last_type_symbol = IN1_type_symbol;
       
 27749             
       
 27750             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27751             {
       
 27752         
       
 27753                 {
       
 27754                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27755                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27756                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27757                     symbol_c *IN2_type_symbol = NULL;
       
 27758                     
       
 27759                     /* Get the value from a foo(<param_value>) style call */
       
 27760                     if (IN2_param_value == NULL)
       
 27761                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27762                     if (IN2_param_value != NULL) {
       
 27763                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27764                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27765                     }
       
 27766                     
       
 27767                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27768                     {
       
 27769                 
       
 27770                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27771                         return return_type_symbol;
       
 27772                         
       
 27773                     }
       
 27774                     
       
 27775                     
       
 27776                     ERROR;
       
 27777                 }
       
 27778                 
       
 27779             }
       
 27780             
       
 27781             
       
 27782             ERROR;
       
 27783         }
       
 27784         
       
 27785     }/*function_add_time*/
       
 27786     break;
       
 27787 
       
 27788 /****
       
 27789  *ADD_TOD_TIME
       
 27790  */
       
 27791     case function_add_tod_time :
       
 27792     {
       
 27793         symbol_c *last_type_symbol = NULL;
       
 27794 
       
 27795         {
       
 27796             symbol_c *IN1_type_symbol = param_data_type;
       
 27797             last_type_symbol = IN1_type_symbol;
       
 27798             
       
 27799             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 27800             {
       
 27801         
       
 27802                 {
       
 27803                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27804                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27805                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27806                     symbol_c *IN2_type_symbol = NULL;
       
 27807                     
       
 27808                     /* Get the value from a foo(<param_value>) style call */
       
 27809                     if (IN2_param_value == NULL)
       
 27810                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27811                     if (IN2_param_value != NULL) {
       
 27812                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27813                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27814                     }
       
 27815                     
       
 27816                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27817                     {
       
 27818                 
       
 27819                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 27820                         return return_type_symbol;
       
 27821                         
       
 27822                     }
       
 27823                     
       
 27824                     
       
 27825                     ERROR;
       
 27826                 }
       
 27827                 
       
 27828             }
       
 27829             
       
 27830             
       
 27831             ERROR;
       
 27832         }
       
 27833         
       
 27834     }/*function_add_tod_time*/
       
 27835     break;
       
 27836 
       
 27837 /****
       
 27838  *ADD_DT_TIME
       
 27839  */
       
 27840     case function_add_dt_time :
       
 27841     {
       
 27842         symbol_c *last_type_symbol = NULL;
       
 27843 
       
 27844         {
       
 27845             symbol_c *IN1_type_symbol = param_data_type;
       
 27846             last_type_symbol = IN1_type_symbol;
       
 27847             
       
 27848             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 27849             {
       
 27850         
       
 27851                 {
       
 27852                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27853                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27854                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27855                     symbol_c *IN2_type_symbol = NULL;
       
 27856                     
       
 27857                     /* Get the value from a foo(<param_value>) style call */
       
 27858                     if (IN2_param_value == NULL)
       
 27859                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27860                     if (IN2_param_value != NULL) {
       
 27861                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27862                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27863                     }
       
 27864                     
       
 27865                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27866                     {
       
 27867                 
       
 27868                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 27869                         return return_type_symbol;
       
 27870                         
       
 27871                     }
       
 27872                     
       
 27873                     
       
 27874                     ERROR;
       
 27875                 }
       
 27876                 
       
 27877             }
       
 27878             
       
 27879             
       
 27880             ERROR;
       
 27881         }
       
 27882         
       
 27883     }/*function_add_dt_time*/
       
 27884     break;
       
 27885 
       
 27886 /****
       
 27887  *MULTIME
       
 27888  */
       
 27889     case function_multime :
       
 27890     {
       
 27891         symbol_c *last_type_symbol = NULL;
       
 27892 
       
 27893         {
       
 27894             symbol_c *IN1_type_symbol = param_data_type;
       
 27895             last_type_symbol = IN1_type_symbol;
       
 27896             
       
 27897             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27898             {
       
 27899         
       
 27900                 {
       
 27901                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27902                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27903                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27904                     symbol_c *IN2_type_symbol = NULL;
       
 27905                     
       
 27906                     /* Get the value from a foo(<param_value>) style call */
       
 27907                     if (IN2_param_value == NULL)
       
 27908                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27909                     if (IN2_param_value != NULL) {
       
 27910                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27911                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27912                     }
       
 27913                     
       
 27914                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 27915                     {
       
 27916                 
       
 27917                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27918                         return return_type_symbol;
       
 27919                         
       
 27920                     }
       
 27921                     
       
 27922                     
       
 27923                     ERROR;
       
 27924                 }
       
 27925                 
       
 27926             }
       
 27927             
       
 27928             
       
 27929             ERROR;
       
 27930         }
       
 27931         
       
 27932     }/*function_multime*/
       
 27933     break;
       
 27934 
       
 27935 /****
       
 27936  *SUB_TIME
       
 27937  */
       
 27938     case function_sub_time :
       
 27939     {
       
 27940         symbol_c *last_type_symbol = NULL;
       
 27941 
       
 27942         {
       
 27943             symbol_c *IN1_type_symbol = param_data_type;
       
 27944             last_type_symbol = IN1_type_symbol;
       
 27945             
       
 27946             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27947             {
       
 27948         
       
 27949                 {
       
 27950                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 27951                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 27952                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 27953                     symbol_c *IN2_type_symbol = NULL;
       
 27954                     
       
 27955                     /* Get the value from a foo(<param_value>) style call */
       
 27956                     if (IN2_param_value == NULL)
       
 27957                       IN2_param_value = function_call_param_iterator.next_nf();
       
 27958                     if (IN2_param_value != NULL) {
       
 27959                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 27960                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 27961                     }
       
 27962                     
       
 27963                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 27964                     {
       
 27965                 
       
 27966                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 27967                         return return_type_symbol;
       
 27968                         
       
 27969                     }
       
 27970                     
       
 27971                     
       
 27972                     ERROR;
       
 27973                 }
       
 27974                 
       
 27975             }
       
 27976             
       
 27977             
       
 27978             ERROR;
       
 27979         }
       
 27980         
       
 27981     }/*function_sub_time*/
       
 27982     break;
       
 27983 
       
 27984 /****
       
 27985  *SUB_DATE_DATE
       
 27986  */
       
 27987     case function_sub_date_date :
       
 27988     {
       
 27989         symbol_c *last_type_symbol = NULL;
       
 27990 
       
 27991         {
       
 27992             symbol_c *IN1_type_symbol = param_data_type;
       
 27993             last_type_symbol = IN1_type_symbol;
       
 27994             
       
 27995             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 27996             {
       
 27997         
       
 27998                 {
       
 27999                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28000                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28001                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28002                     symbol_c *IN2_type_symbol = NULL;
       
 28003                     
       
 28004                     /* Get the value from a foo(<param_value>) style call */
       
 28005                     if (IN2_param_value == NULL)
       
 28006                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28007                     if (IN2_param_value != NULL) {
       
 28008                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28009                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28010                     }
       
 28011                     
       
 28012                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 28013                     {
       
 28014                 
       
 28015                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 28016                         return return_type_symbol;
       
 28017                         
       
 28018                     }
       
 28019                     
       
 28020                     
       
 28021                     ERROR;
       
 28022                 }
       
 28023                 
       
 28024             }
       
 28025             
       
 28026             
       
 28027             ERROR;
       
 28028         }
       
 28029         
       
 28030     }/*function_sub_date_date*/
       
 28031     break;
       
 28032 
       
 28033 /****
       
 28034  *SUB_TOD_TIME
       
 28035  */
       
 28036     case function_sub_tod_time :
       
 28037     {
       
 28038         symbol_c *last_type_symbol = NULL;
       
 28039 
       
 28040         {
       
 28041             symbol_c *IN1_type_symbol = param_data_type;
       
 28042             last_type_symbol = IN1_type_symbol;
       
 28043             
       
 28044             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 28045             {
       
 28046         
       
 28047                 {
       
 28048                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28049                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28050                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28051                     symbol_c *IN2_type_symbol = NULL;
       
 28052                     
       
 28053                     /* Get the value from a foo(<param_value>) style call */
       
 28054                     if (IN2_param_value == NULL)
       
 28055                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28056                     if (IN2_param_value != NULL) {
       
 28057                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28058                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28059                     }
       
 28060                     
       
 28061                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 28062                     {
       
 28063                 
       
 28064                         symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
       
 28065                         return return_type_symbol;
       
 28066                         
       
 28067                     }
       
 28068                     
       
 28069                     
       
 28070                     ERROR;
       
 28071                 }
       
 28072                 
       
 28073             }
       
 28074             
       
 28075             
       
 28076             ERROR;
       
 28077         }
       
 28078         
       
 28079     }/*function_sub_tod_time*/
       
 28080     break;
       
 28081 
       
 28082 /****
       
 28083  *SUB_TOD_TOD
       
 28084  */
       
 28085     case function_sub_tod_tod :
       
 28086     {
       
 28087         symbol_c *last_type_symbol = NULL;
       
 28088 
       
 28089         {
       
 28090             symbol_c *IN1_type_symbol = param_data_type;
       
 28091             last_type_symbol = IN1_type_symbol;
       
 28092             
       
 28093             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 28094             {
       
 28095         
       
 28096                 {
       
 28097                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28098                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28099                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28100                     symbol_c *IN2_type_symbol = NULL;
       
 28101                     
       
 28102                     /* Get the value from a foo(<param_value>) style call */
       
 28103                     if (IN2_param_value == NULL)
       
 28104                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28105                     if (IN2_param_value != NULL) {
       
 28106                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28107                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28108                     }
       
 28109                     
       
 28110                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 28111                     {
       
 28112                 
       
 28113                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 28114                         return return_type_symbol;
       
 28115                         
       
 28116                     }
       
 28117                     
       
 28118                     
       
 28119                     ERROR;
       
 28120                 }
       
 28121                 
       
 28122             }
       
 28123             
       
 28124             
       
 28125             ERROR;
       
 28126         }
       
 28127         
       
 28128     }/*function_sub_tod_tod*/
       
 28129     break;
       
 28130 
       
 28131 /****
       
 28132  *SUB_DT_TIME
       
 28133  */
       
 28134     case function_sub_dt_time :
       
 28135     {
       
 28136         symbol_c *last_type_symbol = NULL;
       
 28137 
       
 28138         {
       
 28139             symbol_c *IN1_type_symbol = param_data_type;
       
 28140             last_type_symbol = IN1_type_symbol;
       
 28141             
       
 28142             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 28143             {
       
 28144         
       
 28145                 {
       
 28146                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28147                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28148                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28149                     symbol_c *IN2_type_symbol = NULL;
       
 28150                     
       
 28151                     /* Get the value from a foo(<param_value>) style call */
       
 28152                     if (IN2_param_value == NULL)
       
 28153                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28154                     if (IN2_param_value != NULL) {
       
 28155                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28156                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28157                     }
       
 28158                     
       
 28159                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
       
 28160                     {
       
 28161                 
       
 28162                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 28163                         return return_type_symbol;
       
 28164                         
       
 28165                     }
       
 28166                     
       
 28167                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 28168                     {
       
 28169                 
       
 28170                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 28171                         return return_type_symbol;
       
 28172                         
       
 28173                     }
       
 28174                     
       
 28175                     
       
 28176                     ERROR;
       
 28177                 }
       
 28178                 
       
 28179             }
       
 28180             
       
 28181             
       
 28182             ERROR;
       
 28183         }
       
 28184         
       
 28185     }/*function_sub_dt_time*/
       
 28186     break;
       
 28187 
       
 28188 /****
       
 28189  *DIVTIME
       
 28190  */
       
 28191     case function_divtime :
       
 28192     {
       
 28193         symbol_c *last_type_symbol = NULL;
       
 28194 
       
 28195         {
       
 28196             symbol_c *IN1_type_symbol = param_data_type;
       
 28197             last_type_symbol = IN1_type_symbol;
       
 28198             
       
 28199             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
       
 28200             {
       
 28201         
       
 28202                 {
       
 28203                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28204                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28205                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28206                     symbol_c *IN2_type_symbol = NULL;
       
 28207                     
       
 28208                     /* Get the value from a foo(<param_value>) style call */
       
 28209                     if (IN2_param_value == NULL)
       
 28210                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28211                     if (IN2_param_value != NULL) {
       
 28212                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28213                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28214                     }
       
 28215                     
       
 28216                     if(IN2_type_symbol == NULL || search_expression_type->is_num_type(IN2_type_symbol))
       
 28217                     {
       
 28218                 
       
 28219                         symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
       
 28220                         return return_type_symbol;
       
 28221                         
       
 28222                     }
       
 28223                     
       
 28224                     
       
 28225                     ERROR;
       
 28226                 }
       
 28227                 
       
 28228             }
       
 28229             
       
 28230             
       
 28231             ERROR;
       
 28232         }
       
 28233         
       
 28234     }/*function_divtime*/
       
 28235     break;
       
 28236 
       
 28237 /****
       
 28238  *SHL
       
 28239  */
       
 28240     case function_shl :
       
 28241     {
       
 28242         symbol_c *last_type_symbol = NULL;
       
 28243 
       
 28244         {
       
 28245             symbol_c *IN_type_symbol = param_data_type;
       
 28246             last_type_symbol = IN_type_symbol;
       
 28247             
       
 28248             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 28249             {
       
 28250         
       
 28251                 {
       
 28252                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 28253                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28254                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 28255                     symbol_c *N_type_symbol = NULL;
       
 28256                     
       
 28257                     /* Get the value from a foo(<param_value>) style call */
       
 28258                     if (N_param_value == NULL)
       
 28259                       N_param_value = function_call_param_iterator.next_nf();
       
 28260                     if (N_param_value != NULL) {
       
 28261                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 28262                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 28263                     }
       
 28264                     
       
 28265                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 28266                     {
       
 28267                 
       
 28268                         symbol_c * return_type_symbol = IN_type_symbol;
       
 28269                         return return_type_symbol;
       
 28270                         
       
 28271                     }
       
 28272                     
       
 28273                     
       
 28274                     ERROR;
       
 28275                 }
       
 28276                 
       
 28277             }
       
 28278             
       
 28279             
       
 28280             ERROR;
       
 28281         }
       
 28282         
       
 28283     }/*function_shl*/
       
 28284     break;
       
 28285 
       
 28286 /****
       
 28287  *SHR
       
 28288  */
       
 28289     case function_shr :
       
 28290     {
       
 28291         symbol_c *last_type_symbol = NULL;
       
 28292 
       
 28293         {
       
 28294             symbol_c *IN_type_symbol = param_data_type;
       
 28295             last_type_symbol = IN_type_symbol;
       
 28296             
       
 28297             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 28298             {
       
 28299         
       
 28300                 {
       
 28301                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 28302                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28303                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 28304                     symbol_c *N_type_symbol = NULL;
       
 28305                     
       
 28306                     /* Get the value from a foo(<param_value>) style call */
       
 28307                     if (N_param_value == NULL)
       
 28308                       N_param_value = function_call_param_iterator.next_nf();
       
 28309                     if (N_param_value != NULL) {
       
 28310                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 28311                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 28312                     }
       
 28313                     
       
 28314                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 28315                     {
       
 28316                 
       
 28317                         symbol_c * return_type_symbol = IN_type_symbol;
       
 28318                         return return_type_symbol;
       
 28319                         
       
 28320                     }
       
 28321                     
       
 28322                     
       
 28323                     ERROR;
       
 28324                 }
       
 28325                 
       
 28326             }
       
 28327             
       
 28328             
       
 28329             ERROR;
       
 28330         }
       
 28331         
       
 28332     }/*function_shr*/
       
 28333     break;
       
 28334 
       
 28335 /****
       
 28336  *ROR
       
 28337  */
       
 28338     case function_ror :
       
 28339     {
       
 28340         symbol_c *last_type_symbol = NULL;
       
 28341 
       
 28342         {
       
 28343             symbol_c *IN_type_symbol = param_data_type;
       
 28344             last_type_symbol = IN_type_symbol;
       
 28345             
       
 28346             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
       
 28347             {
       
 28348         
       
 28349                 {
       
 28350                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 28351                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28352                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 28353                     symbol_c *N_type_symbol = NULL;
       
 28354                     
       
 28355                     /* Get the value from a foo(<param_value>) style call */
       
 28356                     if (N_param_value == NULL)
       
 28357                       N_param_value = function_call_param_iterator.next_nf();
       
 28358                     if (N_param_value != NULL) {
       
 28359                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 28360                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 28361                     }
       
 28362                     
       
 28363                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 28364                     {
       
 28365                 
       
 28366                         symbol_c * return_type_symbol = IN_type_symbol;
       
 28367                         return return_type_symbol;
       
 28368                         
       
 28369                     }
       
 28370                     
       
 28371                     
       
 28372                     ERROR;
       
 28373                 }
       
 28374                 
       
 28375             }
       
 28376             
       
 28377             
       
 28378             ERROR;
       
 28379         }
       
 28380         
       
 28381     }/*function_ror*/
       
 28382     break;
       
 28383 
       
 28384 /****
       
 28385  *ROL
       
 28386  */
       
 28387     case function_rol :
       
 28388     {
       
 28389         symbol_c *last_type_symbol = NULL;
       
 28390 
       
 28391         {
       
 28392             symbol_c *IN_type_symbol = param_data_type;
       
 28393             last_type_symbol = IN_type_symbol;
       
 28394             
       
 28395             if(IN_type_symbol == NULL || search_expression_type->is_nbinary_type(IN_type_symbol))
       
 28396             {
       
 28397         
       
 28398                 {
       
 28399                     symbol_c *N_param_name = (symbol_c *)(new identifier_c("N"));
       
 28400                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28401                     symbol_c *N_param_value = function_call_param_iterator.search_f(N_param_name);
       
 28402                     symbol_c *N_type_symbol = NULL;
       
 28403                     
       
 28404                     /* Get the value from a foo(<param_value>) style call */
       
 28405                     if (N_param_value == NULL)
       
 28406                       N_param_value = function_call_param_iterator.next_nf();
       
 28407                     if (N_param_value != NULL) {
       
 28408                       N_type_symbol = search_expression_type->get_type(N_param_value);
       
 28409                       last_type_symbol = last_type_symbol && N_type_symbol && search_expression_type->is_same_type(N_type_symbol, last_type_symbol) ? search_expression_type->common_type(N_type_symbol, last_type_symbol) : N_type_symbol ;
       
 28410                     }
       
 28411                     
       
 28412                     if(N_type_symbol == NULL || search_expression_type->is_integer_type(N_type_symbol))
       
 28413                     {
       
 28414                 
       
 28415                         symbol_c * return_type_symbol = IN_type_symbol;
       
 28416                         return return_type_symbol;
       
 28417                         
       
 28418                     }
       
 28419                     
       
 28420                     
       
 28421                     ERROR;
       
 28422                 }
       
 28423                 
       
 28424             }
       
 28425             
       
 28426             
       
 28427             ERROR;
       
 28428         }
       
 28429         
       
 28430     }/*function_rol*/
       
 28431     break;
       
 28432 
       
 28433 /****
       
 28434  *AND
       
 28435  */
       
 28436     case function_and :
       
 28437     {
       
 28438         symbol_c *last_type_symbol = NULL;
       
 28439 
       
 28440         {
       
 28441             symbol_c *IN1_type_symbol = param_data_type;
       
 28442             last_type_symbol = IN1_type_symbol;
       
 28443             
       
 28444             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 28445             {
       
 28446         
       
 28447                 {
       
 28448                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28449                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28450                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28451                     symbol_c *IN2_type_symbol = NULL;
       
 28452                     
       
 28453                     /* Get the value from a foo(<param_value>) style call */
       
 28454                     if (IN2_param_value == NULL)
       
 28455                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28456                     if (IN2_param_value != NULL) {
       
 28457                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28458                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28459                     }
       
 28460                     
       
 28461                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 28462                     {
       
 28463                 
       
 28464                         symbol_c * return_type_symbol = last_type_symbol;
       
 28465                         return return_type_symbol;
       
 28466                         
       
 28467                     }
       
 28468                     
       
 28469                     
       
 28470                     ERROR;
       
 28471                 }
       
 28472                 
       
 28473             }
       
 28474             
       
 28475             
       
 28476             ERROR;
       
 28477         }
       
 28478         
       
 28479     }/*function_and*/
       
 28480     break;
       
 28481 
       
 28482 /****
       
 28483  *OR
       
 28484  */
       
 28485     case function_or :
       
 28486     {
       
 28487         symbol_c *last_type_symbol = NULL;
       
 28488 
       
 28489         {
       
 28490             symbol_c *IN1_type_symbol = param_data_type;
       
 28491             last_type_symbol = IN1_type_symbol;
       
 28492             
       
 28493             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 28494             {
       
 28495         
       
 28496                 {
       
 28497                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28498                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28499                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28500                     symbol_c *IN2_type_symbol = NULL;
       
 28501                     
       
 28502                     /* Get the value from a foo(<param_value>) style call */
       
 28503                     if (IN2_param_value == NULL)
       
 28504                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28505                     if (IN2_param_value != NULL) {
       
 28506                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28507                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28508                     }
       
 28509                     
       
 28510                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 28511                     {
       
 28512                 
       
 28513                         symbol_c * return_type_symbol = last_type_symbol;
       
 28514                         return return_type_symbol;
       
 28515                         
       
 28516                     }
       
 28517                     
       
 28518                     
       
 28519                     ERROR;
       
 28520                 }
       
 28521                 
       
 28522             }
       
 28523             
       
 28524             
       
 28525             ERROR;
       
 28526         }
       
 28527         
       
 28528     }/*function_or*/
       
 28529     break;
       
 28530 
       
 28531 /****
       
 28532  *XOR
       
 28533  */
       
 28534     case function_xor :
       
 28535     {
       
 28536         symbol_c *last_type_symbol = NULL;
       
 28537 
       
 28538         {
       
 28539             symbol_c *IN1_type_symbol = param_data_type;
       
 28540             last_type_symbol = IN1_type_symbol;
       
 28541             
       
 28542             if(IN1_type_symbol == NULL || search_expression_type->is_binary_type(IN1_type_symbol))
       
 28543             {
       
 28544         
       
 28545                 {
       
 28546                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28547                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28548                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28549                     symbol_c *IN2_type_symbol = NULL;
       
 28550                     
       
 28551                     /* Get the value from a foo(<param_value>) style call */
       
 28552                     if (IN2_param_value == NULL)
       
 28553                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28554                     if (IN2_param_value != NULL) {
       
 28555                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28556                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28557                     }
       
 28558                     
       
 28559                     if(IN2_type_symbol == NULL || search_expression_type->is_binary_type(IN2_type_symbol))
       
 28560                     {
       
 28561                 
       
 28562                         symbol_c * return_type_symbol = last_type_symbol;
       
 28563                         return return_type_symbol;
       
 28564                         
       
 28565                     }
       
 28566                     
       
 28567                     
       
 28568                     ERROR;
       
 28569                 }
       
 28570                 
       
 28571             }
       
 28572             
       
 28573             
       
 28574             ERROR;
       
 28575         }
       
 28576         
       
 28577     }/*function_xor*/
       
 28578     break;
       
 28579 
       
 28580 /****
       
 28581  *NOT
       
 28582  */
       
 28583     case function_not :
       
 28584     {
       
 28585         symbol_c *last_type_symbol = NULL;
       
 28586 
       
 28587         {
       
 28588             symbol_c *IN_type_symbol = param_data_type;
       
 28589             last_type_symbol = IN_type_symbol;
       
 28590             
       
 28591             if(IN_type_symbol == NULL || search_expression_type->is_binary_type(IN_type_symbol))
       
 28592             {
       
 28593         
       
 28594                 symbol_c * return_type_symbol = IN_type_symbol;
       
 28595                 return return_type_symbol;
       
 28596                 
       
 28597             }
       
 28598             
       
 28599             
       
 28600             ERROR;
       
 28601         }
       
 28602         
       
 28603     }/*function_not*/
       
 28604     break;
       
 28605 
       
 28606 /****
       
 28607  *SEL
       
 28608  */
       
 28609     case function_sel :
       
 28610     {
       
 28611         symbol_c *last_type_symbol = NULL;
       
 28612 
       
 28613         {
       
 28614             symbol_c *G_type_symbol = param_data_type;
       
 28615             last_type_symbol = G_type_symbol;
       
 28616             
       
 28617             if(G_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
       
 28618             {
       
 28619         
       
 28620                 {
       
 28621                     symbol_c *IN0_param_name = (symbol_c *)(new identifier_c("IN0"));
       
 28622                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28623                     symbol_c *IN0_param_value = function_call_param_iterator.search_f(IN0_param_name);
       
 28624                     symbol_c *IN0_type_symbol = NULL;
       
 28625                     
       
 28626                     /* Get the value from a foo(<param_value>) style call */
       
 28627                     if (IN0_param_value == NULL)
       
 28628                       IN0_param_value = function_call_param_iterator.next_nf();
       
 28629                     if (IN0_param_value != NULL) {
       
 28630                       IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
       
 28631                       last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
       
 28632                     }
       
 28633                     
       
 28634                     
       
 28635                     {
       
 28636                 
       
 28637                         {
       
 28638                             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 28639                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28640                             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 28641                             symbol_c *IN1_type_symbol = NULL;
       
 28642                             
       
 28643                             /* Get the value from a foo(<param_value>) style call */
       
 28644                             if (IN1_param_value == NULL)
       
 28645                               IN1_param_value = function_call_param_iterator.next_nf();
       
 28646                             if (IN1_param_value != NULL) {
       
 28647                               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 28648                               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 28649                             }
       
 28650                             
       
 28651                             
       
 28652                             {
       
 28653                         
       
 28654                                 symbol_c * return_type_symbol = last_type_symbol;
       
 28655                                 return return_type_symbol;
       
 28656                                 
       
 28657                             }
       
 28658                             
       
 28659                             
       
 28660                             ERROR;
       
 28661                         }
       
 28662                         
       
 28663                     }
       
 28664                     
       
 28665                     
       
 28666                     ERROR;
       
 28667                 }
       
 28668                 
       
 28669             }
       
 28670             
       
 28671             
       
 28672             ERROR;
       
 28673         }
       
 28674         
       
 28675     }/*function_sel*/
       
 28676     break;
       
 28677 
       
 28678 /****
       
 28679  *MAX
       
 28680  */
       
 28681     case function_max :
       
 28682     {
       
 28683         symbol_c *last_type_symbol = NULL;
       
 28684 
       
 28685         {
       
 28686             symbol_c *IN1_type_symbol = param_data_type;
       
 28687             last_type_symbol = IN1_type_symbol;
       
 28688             
       
 28689             
       
 28690             {
       
 28691         
       
 28692                 {
       
 28693                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28694                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28695                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28696                     symbol_c *IN2_type_symbol = NULL;
       
 28697                     
       
 28698                     /* Get the value from a foo(<param_value>) style call */
       
 28699                     if (IN2_param_value == NULL)
       
 28700                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28701                     if (IN2_param_value != NULL) {
       
 28702                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28703                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28704                     }
       
 28705                     
       
 28706                     
       
 28707                     {
       
 28708                 
       
 28709                         symbol_c * return_type_symbol = last_type_symbol;
       
 28710                         return return_type_symbol;
       
 28711                         
       
 28712                     }
       
 28713                     
       
 28714                     
       
 28715                     ERROR;
       
 28716                 }
       
 28717                 
       
 28718             }
       
 28719             
       
 28720             
       
 28721             ERROR;
       
 28722         }
       
 28723         
       
 28724     }/*function_max*/
       
 28725     break;
       
 28726 
       
 28727 /****
       
 28728  *MIN
       
 28729  */
       
 28730     case function_min :
       
 28731     {
       
 28732         symbol_c *last_type_symbol = NULL;
       
 28733 
       
 28734         {
       
 28735             symbol_c *IN1_type_symbol = param_data_type;
       
 28736             last_type_symbol = IN1_type_symbol;
       
 28737             
       
 28738             
       
 28739             {
       
 28740         
       
 28741                 {
       
 28742                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28743                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28744                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28745                     symbol_c *IN2_type_symbol = NULL;
       
 28746                     
       
 28747                     /* Get the value from a foo(<param_value>) style call */
       
 28748                     if (IN2_param_value == NULL)
       
 28749                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28750                     if (IN2_param_value != NULL) {
       
 28751                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28752                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28753                     }
       
 28754                     
       
 28755                     
       
 28756                     {
       
 28757                 
       
 28758                         symbol_c * return_type_symbol = last_type_symbol;
       
 28759                         return return_type_symbol;
       
 28760                         
       
 28761                     }
       
 28762                     
       
 28763                     
       
 28764                     ERROR;
       
 28765                 }
       
 28766                 
       
 28767             }
       
 28768             
       
 28769             
       
 28770             ERROR;
       
 28771         }
       
 28772         
       
 28773     }/*function_min*/
       
 28774     break;
       
 28775 
       
 28776 /****
       
 28777  *LIMIT
       
 28778  */
       
 28779     case function_limit :
       
 28780     {
       
 28781         symbol_c *last_type_symbol = NULL;
       
 28782 
       
 28783         {
       
 28784             symbol_c *MN_type_symbol = param_data_type;
       
 28785             last_type_symbol = MN_type_symbol;
       
 28786             
       
 28787             
       
 28788             {
       
 28789         
       
 28790                 {
       
 28791                     symbol_c *IN_param_name = (symbol_c *)(new identifier_c("IN"));
       
 28792                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28793                     symbol_c *IN_param_value = function_call_param_iterator.search_f(IN_param_name);
       
 28794                     symbol_c *IN_type_symbol = NULL;
       
 28795                     
       
 28796                     /* Get the value from a foo(<param_value>) style call */
       
 28797                     if (IN_param_value == NULL)
       
 28798                       IN_param_value = function_call_param_iterator.next_nf();
       
 28799                     if (IN_param_value != NULL) {
       
 28800                       IN_type_symbol = search_expression_type->get_type(IN_param_value);
       
 28801                       last_type_symbol = last_type_symbol && IN_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
       
 28802                     }
       
 28803                     
       
 28804                     
       
 28805                     {
       
 28806                 
       
 28807                         {
       
 28808                             symbol_c *MX_param_name = (symbol_c *)(new identifier_c("MX"));
       
 28809                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28810                             symbol_c *MX_param_value = function_call_param_iterator.search_f(MX_param_name);
       
 28811                             symbol_c *MX_type_symbol = NULL;
       
 28812                             
       
 28813                             /* Get the value from a foo(<param_value>) style call */
       
 28814                             if (MX_param_value == NULL)
       
 28815                               MX_param_value = function_call_param_iterator.next_nf();
       
 28816                             if (MX_param_value != NULL) {
       
 28817                               MX_type_symbol = search_expression_type->get_type(MX_param_value);
       
 28818                               last_type_symbol = last_type_symbol && MX_type_symbol && search_expression_type->is_same_type(MX_type_symbol, last_type_symbol) ? search_expression_type->common_type(MX_type_symbol, last_type_symbol) : MX_type_symbol ;
       
 28819                             }
       
 28820                             
       
 28821                             
       
 28822                             {
       
 28823                         
       
 28824                                 symbol_c * return_type_symbol = IN_type_symbol;
       
 28825                                 return return_type_symbol;
       
 28826                                 
       
 28827                             }
       
 28828                             
       
 28829                             
       
 28830                             ERROR;
       
 28831                         }
       
 28832                         
       
 28833                     }
       
 28834                     
       
 28835                     
       
 28836                     ERROR;
       
 28837                 }
       
 28838                 
       
 28839             }
       
 28840             
       
 28841             
       
 28842             ERROR;
       
 28843         }
       
 28844         
       
 28845     }/*function_limit*/
       
 28846     break;
       
 28847 
       
 28848 /****
       
 28849  *MUX
       
 28850  */
       
 28851     case function_mux :
       
 28852     {
       
 28853         symbol_c *last_type_symbol = NULL;
       
 28854 
       
 28855         {
       
 28856             symbol_c *K_type_symbol = param_data_type;
       
 28857             last_type_symbol = K_type_symbol;
       
 28858             
       
 28859             if(K_type_symbol == NULL || search_expression_type->is_integer_type(K_type_symbol))
       
 28860             {
       
 28861         
       
 28862                 {
       
 28863                     symbol_c *IN0_param_name = (symbol_c *)(new identifier_c("IN0"));
       
 28864                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28865                     symbol_c *IN0_param_value = function_call_param_iterator.search_f(IN0_param_name);
       
 28866                     symbol_c *IN0_type_symbol = NULL;
       
 28867                     
       
 28868                     /* Get the value from a foo(<param_value>) style call */
       
 28869                     if (IN0_param_value == NULL)
       
 28870                       IN0_param_value = function_call_param_iterator.next_nf();
       
 28871                     if (IN0_param_value != NULL) {
       
 28872                       IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
       
 28873                       last_type_symbol = last_type_symbol && IN0_type_symbol && search_expression_type->is_same_type(IN0_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN0_type_symbol, last_type_symbol) : IN0_type_symbol ;
       
 28874                     }
       
 28875                     
       
 28876                     
       
 28877                     {
       
 28878                 
       
 28879                         {
       
 28880                             symbol_c *IN1_param_name = (symbol_c *)(new identifier_c("IN1"));
       
 28881                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28882                             symbol_c *IN1_param_value = function_call_param_iterator.search_f(IN1_param_name);
       
 28883                             symbol_c *IN1_type_symbol = NULL;
       
 28884                             
       
 28885                             /* Get the value from a foo(<param_value>) style call */
       
 28886                             if (IN1_param_value == NULL)
       
 28887                               IN1_param_value = function_call_param_iterator.next_nf();
       
 28888                             if (IN1_param_value != NULL) {
       
 28889                               IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
       
 28890                               last_type_symbol = last_type_symbol && IN1_type_symbol && search_expression_type->is_same_type(IN1_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN1_type_symbol, last_type_symbol) : IN1_type_symbol ;
       
 28891                             }
       
 28892                             
       
 28893                             
       
 28894                             {
       
 28895                         
       
 28896                                 symbol_c * return_type_symbol = last_type_symbol;
       
 28897                                 return return_type_symbol;
       
 28898                                 
       
 28899                             }
       
 28900                             
       
 28901                             
       
 28902                             ERROR;
       
 28903                         }
       
 28904                         
       
 28905                     }
       
 28906                     
       
 28907                     
       
 28908                     ERROR;
       
 28909                 }
       
 28910                 
       
 28911             }
       
 28912             
       
 28913             
       
 28914             ERROR;
       
 28915         }
       
 28916         
       
 28917     }/*function_mux*/
       
 28918     break;
       
 28919 
       
 28920 /****
       
 28921  *GT
       
 28922  */
       
 28923     case function_gt :
       
 28924     {
       
 28925         symbol_c *last_type_symbol = NULL;
       
 28926 
       
 28927         {
       
 28928             symbol_c *IN1_type_symbol = param_data_type;
       
 28929             last_type_symbol = IN1_type_symbol;
       
 28930             
       
 28931             
       
 28932             {
       
 28933         
       
 28934                 {
       
 28935                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28936                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28937                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28938                     symbol_c *IN2_type_symbol = NULL;
       
 28939                     
       
 28940                     /* Get the value from a foo(<param_value>) style call */
       
 28941                     if (IN2_param_value == NULL)
       
 28942                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28943                     if (IN2_param_value != NULL) {
       
 28944                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28945                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28946                     }
       
 28947                     
       
 28948                     
       
 28949                     {
       
 28950                 
       
 28951                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 28952                         return return_type_symbol;
       
 28953                         
       
 28954                     }
       
 28955                     
       
 28956                     
       
 28957                     ERROR;
       
 28958                 }
       
 28959                 
       
 28960             }
       
 28961             
       
 28962             
       
 28963             ERROR;
       
 28964         }
       
 28965         
       
 28966     }/*function_gt*/
       
 28967     break;
       
 28968 
       
 28969 /****
       
 28970  *GE
       
 28971  */
       
 28972     case function_ge :
       
 28973     {
       
 28974         symbol_c *last_type_symbol = NULL;
       
 28975 
       
 28976         {
       
 28977             symbol_c *IN1_type_symbol = param_data_type;
       
 28978             last_type_symbol = IN1_type_symbol;
       
 28979             
       
 28980             
       
 28981             {
       
 28982         
       
 28983                 {
       
 28984                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 28985                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 28986                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 28987                     symbol_c *IN2_type_symbol = NULL;
       
 28988                     
       
 28989                     /* Get the value from a foo(<param_value>) style call */
       
 28990                     if (IN2_param_value == NULL)
       
 28991                       IN2_param_value = function_call_param_iterator.next_nf();
       
 28992                     if (IN2_param_value != NULL) {
       
 28993                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 28994                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 28995                     }
       
 28996                     
       
 28997                     
       
 28998                     {
       
 28999                 
       
 29000                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 29001                         return return_type_symbol;
       
 29002                         
       
 29003                     }
       
 29004                     
       
 29005                     
       
 29006                     ERROR;
       
 29007                 }
       
 29008                 
       
 29009             }
       
 29010             
       
 29011             
       
 29012             ERROR;
       
 29013         }
       
 29014         
       
 29015     }/*function_ge*/
       
 29016     break;
       
 29017 
       
 29018 /****
       
 29019  *EQ
       
 29020  */
       
 29021     case function_eq :
       
 29022     {
       
 29023         symbol_c *last_type_symbol = NULL;
       
 29024 
       
 29025         {
       
 29026             symbol_c *IN1_type_symbol = param_data_type;
       
 29027             last_type_symbol = IN1_type_symbol;
       
 29028             
       
 29029             
       
 29030             {
       
 29031         
       
 29032                 {
       
 29033                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29034                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29035                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29036                     symbol_c *IN2_type_symbol = NULL;
       
 29037                     
       
 29038                     /* Get the value from a foo(<param_value>) style call */
       
 29039                     if (IN2_param_value == NULL)
       
 29040                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29041                     if (IN2_param_value != NULL) {
       
 29042                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29043                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29044                     }
       
 29045                     
       
 29046                     
       
 29047                     {
       
 29048                 
       
 29049                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 29050                         return return_type_symbol;
       
 29051                         
       
 29052                     }
       
 29053                     
       
 29054                     
       
 29055                     ERROR;
       
 29056                 }
       
 29057                 
       
 29058             }
       
 29059             
       
 29060             
       
 29061             ERROR;
       
 29062         }
       
 29063         
       
 29064     }/*function_eq*/
       
 29065     break;
       
 29066 
       
 29067 /****
       
 29068  *LT
       
 29069  */
       
 29070     case function_lt :
       
 29071     {
       
 29072         symbol_c *last_type_symbol = NULL;
       
 29073 
       
 29074         {
       
 29075             symbol_c *IN1_type_symbol = param_data_type;
       
 29076             last_type_symbol = IN1_type_symbol;
       
 29077             
       
 29078             
       
 29079             {
       
 29080         
       
 29081                 {
       
 29082                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29083                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29084                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29085                     symbol_c *IN2_type_symbol = NULL;
       
 29086                     
       
 29087                     /* Get the value from a foo(<param_value>) style call */
       
 29088                     if (IN2_param_value == NULL)
       
 29089                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29090                     if (IN2_param_value != NULL) {
       
 29091                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29092                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29093                     }
       
 29094                     
       
 29095                     
       
 29096                     {
       
 29097                 
       
 29098                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 29099                         return return_type_symbol;
       
 29100                         
       
 29101                     }
       
 29102                     
       
 29103                     
       
 29104                     ERROR;
       
 29105                 }
       
 29106                 
       
 29107             }
       
 29108             
       
 29109             
       
 29110             ERROR;
       
 29111         }
       
 29112         
       
 29113     }/*function_lt*/
       
 29114     break;
       
 29115 
       
 29116 /****
       
 29117  *LE
       
 29118  */
       
 29119     case function_le :
       
 29120     {
       
 29121         symbol_c *last_type_symbol = NULL;
       
 29122 
       
 29123         {
       
 29124             symbol_c *IN1_type_symbol = param_data_type;
       
 29125             last_type_symbol = IN1_type_symbol;
       
 29126             
       
 29127             
       
 29128             {
       
 29129         
       
 29130                 {
       
 29131                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29132                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29133                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29134                     symbol_c *IN2_type_symbol = NULL;
       
 29135                     
       
 29136                     /* Get the value from a foo(<param_value>) style call */
       
 29137                     if (IN2_param_value == NULL)
       
 29138                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29139                     if (IN2_param_value != NULL) {
       
 29140                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29141                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29142                     }
       
 29143                     
       
 29144                     
       
 29145                     {
       
 29146                 
       
 29147                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 29148                         return return_type_symbol;
       
 29149                         
       
 29150                     }
       
 29151                     
       
 29152                     
       
 29153                     ERROR;
       
 29154                 }
       
 29155                 
       
 29156             }
       
 29157             
       
 29158             
       
 29159             ERROR;
       
 29160         }
       
 29161         
       
 29162     }/*function_le*/
       
 29163     break;
       
 29164 
       
 29165 /****
       
 29166  *NE
       
 29167  */
       
 29168     case function_ne :
       
 29169     {
       
 29170         symbol_c *last_type_symbol = NULL;
       
 29171 
       
 29172         {
       
 29173             symbol_c *IN1_type_symbol = param_data_type;
       
 29174             last_type_symbol = IN1_type_symbol;
       
 29175             
       
 29176             
       
 29177             {
       
 29178         
       
 29179                 {
       
 29180                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29181                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29182                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29183                     symbol_c *IN2_type_symbol = NULL;
       
 29184                     
       
 29185                     /* Get the value from a foo(<param_value>) style call */
       
 29186                     if (IN2_param_value == NULL)
       
 29187                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29188                     if (IN2_param_value != NULL) {
       
 29189                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29190                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29191                     }
       
 29192                     
       
 29193                     
       
 29194                     {
       
 29195                 
       
 29196                         symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
       
 29197                         return return_type_symbol;
       
 29198                         
       
 29199                     }
       
 29200                     
       
 29201                     
       
 29202                     ERROR;
       
 29203                 }
       
 29204                 
       
 29205             }
       
 29206             
       
 29207             
       
 29208             ERROR;
       
 29209         }
       
 29210         
       
 29211     }/*function_ne*/
       
 29212     break;
       
 29213 
       
 29214 /****
       
 29215  *LEN
       
 29216  */
       
 29217     case function_len :
       
 29218     {
       
 29219         symbol_c *last_type_symbol = &search_constant_type_c::string_type_name;
       
 29220 
       
 29221         {
       
 29222             symbol_c *IN_type_symbol = param_data_type;
       
 29223             last_type_symbol = IN_type_symbol;
       
 29224             
       
 29225             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29226             {
       
 29227         
       
 29228                 symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 29229                 return return_type_symbol;
       
 29230                 
       
 29231             }
       
 29232             
       
 29233             
       
 29234             ERROR;
       
 29235         }
       
 29236         
       
 29237     }/*function_len*/
       
 29238     break;
       
 29239 
       
 29240 /****
       
 29241  *LEFT
       
 29242  */
       
 29243     case function_left :
       
 29244     {
       
 29245         symbol_c *last_type_symbol = NULL;
       
 29246 
       
 29247         {
       
 29248             symbol_c *IN_type_symbol = param_data_type;
       
 29249             last_type_symbol = IN_type_symbol;
       
 29250             
       
 29251             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29252             {
       
 29253         
       
 29254                 {
       
 29255                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 29256                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29257                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 29258                     symbol_c *L_type_symbol = NULL;
       
 29259                     
       
 29260                     /* Get the value from a foo(<param_value>) style call */
       
 29261                     if (L_param_value == NULL)
       
 29262                       L_param_value = function_call_param_iterator.next_nf();
       
 29263                     if (L_param_value != NULL) {
       
 29264                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 29265                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 29266                     }
       
 29267                     
       
 29268                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 29269                     {
       
 29270                 
       
 29271                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29272                         return return_type_symbol;
       
 29273                         
       
 29274                     }
       
 29275                     
       
 29276                     
       
 29277                     ERROR;
       
 29278                 }
       
 29279                 
       
 29280             }
       
 29281             
       
 29282             
       
 29283             ERROR;
       
 29284         }
       
 29285         
       
 29286     }/*function_left*/
       
 29287     break;
       
 29288 
       
 29289 /****
       
 29290  *RIGHT
       
 29291  */
       
 29292     case function_right :
       
 29293     {
       
 29294         symbol_c *last_type_symbol = NULL;
       
 29295 
       
 29296         {
       
 29297             symbol_c *IN_type_symbol = param_data_type;
       
 29298             last_type_symbol = IN_type_symbol;
       
 29299             
       
 29300             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29301             {
       
 29302         
       
 29303                 {
       
 29304                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 29305                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29306                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 29307                     symbol_c *L_type_symbol = NULL;
       
 29308                     
       
 29309                     /* Get the value from a foo(<param_value>) style call */
       
 29310                     if (L_param_value == NULL)
       
 29311                       L_param_value = function_call_param_iterator.next_nf();
       
 29312                     if (L_param_value != NULL) {
       
 29313                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 29314                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 29315                     }
       
 29316                     
       
 29317                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 29318                     {
       
 29319                 
       
 29320                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29321                         return return_type_symbol;
       
 29322                         
       
 29323                     }
       
 29324                     
       
 29325                     
       
 29326                     ERROR;
       
 29327                 }
       
 29328                 
       
 29329             }
       
 29330             
       
 29331             
       
 29332             ERROR;
       
 29333         }
       
 29334         
       
 29335     }/*function_right*/
       
 29336     break;
       
 29337 
       
 29338 /****
       
 29339  *MID
       
 29340  */
       
 29341     case function_mid :
       
 29342     {
       
 29343         symbol_c *last_type_symbol = NULL;
       
 29344 
       
 29345         {
       
 29346             symbol_c *IN_type_symbol = param_data_type;
       
 29347             last_type_symbol = IN_type_symbol;
       
 29348             
       
 29349             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29350             {
       
 29351         
       
 29352                 {
       
 29353                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 29354                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29355                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 29356                     symbol_c *L_type_symbol = NULL;
       
 29357                     
       
 29358                     /* Get the value from a foo(<param_value>) style call */
       
 29359                     if (L_param_value == NULL)
       
 29360                       L_param_value = function_call_param_iterator.next_nf();
       
 29361                     if (L_param_value != NULL) {
       
 29362                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 29363                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 29364                     }
       
 29365                     
       
 29366                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 29367                     {
       
 29368                 
       
 29369                         {
       
 29370                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 29371                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29372                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 29373                             symbol_c *P_type_symbol = NULL;
       
 29374                             
       
 29375                             /* Get the value from a foo(<param_value>) style call */
       
 29376                             if (P_param_value == NULL)
       
 29377                               P_param_value = function_call_param_iterator.next_nf();
       
 29378                             if (P_param_value != NULL) {
       
 29379                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 29380                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 29381                             }
       
 29382                             
       
 29383                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 29384                             {
       
 29385                         
       
 29386                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29387                                 return return_type_symbol;
       
 29388                                 
       
 29389                             }
       
 29390                             
       
 29391                             
       
 29392                             ERROR;
       
 29393                         }
       
 29394                         
       
 29395                     }
       
 29396                     
       
 29397                     
       
 29398                     ERROR;
       
 29399                 }
       
 29400                 
       
 29401             }
       
 29402             
       
 29403             
       
 29404             ERROR;
       
 29405         }
       
 29406         
       
 29407     }/*function_mid*/
       
 29408     break;
       
 29409 
       
 29410 /****
       
 29411  *CONCAT
       
 29412  */
       
 29413     case function_concat :
       
 29414     {
       
 29415         symbol_c *last_type_symbol = NULL;
       
 29416 
       
 29417         {
       
 29418             symbol_c *IN1_type_symbol = param_data_type;
       
 29419             last_type_symbol = IN1_type_symbol;
       
 29420             
       
 29421             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29422             {
       
 29423         
       
 29424                 {
       
 29425                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29426                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29427                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29428                     symbol_c *IN2_type_symbol = NULL;
       
 29429                     
       
 29430                     /* Get the value from a foo(<param_value>) style call */
       
 29431                     if (IN2_param_value == NULL)
       
 29432                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29433                     if (IN2_param_value != NULL) {
       
 29434                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29435                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29436                     }
       
 29437                     
       
 29438                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29439                     {
       
 29440                 
       
 29441                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29442                         return return_type_symbol;
       
 29443                         
       
 29444                     }
       
 29445                     
       
 29446                     
       
 29447                     ERROR;
       
 29448                 }
       
 29449                 
       
 29450             }
       
 29451             
       
 29452             
       
 29453             ERROR;
       
 29454         }
       
 29455         
       
 29456     }/*function_concat*/
       
 29457     break;
       
 29458 
       
 29459 /****
       
 29460  *CONCAT_DAT_TOD
       
 29461  */
       
 29462     case function_concat_dat_tod :
       
 29463     {
       
 29464         symbol_c *last_type_symbol = NULL;
       
 29465 
       
 29466         {
       
 29467             symbol_c *IN1_type_symbol = param_data_type;
       
 29468             last_type_symbol = IN1_type_symbol;
       
 29469             
       
 29470             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
       
 29471             {
       
 29472         
       
 29473                 {
       
 29474                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29475                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29476                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29477                     symbol_c *IN2_type_symbol = NULL;
       
 29478                     
       
 29479                     /* Get the value from a foo(<param_value>) style call */
       
 29480                     if (IN2_param_value == NULL)
       
 29481                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29482                     if (IN2_param_value != NULL) {
       
 29483                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29484                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29485                     }
       
 29486                     
       
 29487                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
       
 29488                     {
       
 29489                 
       
 29490                         symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
       
 29491                         return return_type_symbol;
       
 29492                         
       
 29493                     }
       
 29494                     
       
 29495                     
       
 29496                     ERROR;
       
 29497                 }
       
 29498                 
       
 29499             }
       
 29500             
       
 29501             
       
 29502             ERROR;
       
 29503         }
       
 29504         
       
 29505     }/*function_concat_dat_tod*/
       
 29506     break;
       
 29507 
       
 29508 /****
       
 29509  *INSERT
       
 29510  */
       
 29511     case function_insert :
       
 29512     {
       
 29513         symbol_c *last_type_symbol = NULL;
       
 29514 
       
 29515         {
       
 29516             symbol_c *IN1_type_symbol = param_data_type;
       
 29517             last_type_symbol = IN1_type_symbol;
       
 29518             
       
 29519             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29520             {
       
 29521         
       
 29522                 {
       
 29523                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29524                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29525                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29526                     symbol_c *IN2_type_symbol = NULL;
       
 29527                     
       
 29528                     /* Get the value from a foo(<param_value>) style call */
       
 29529                     if (IN2_param_value == NULL)
       
 29530                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29531                     if (IN2_param_value != NULL) {
       
 29532                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29533                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29534                     }
       
 29535                     
       
 29536                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29537                     {
       
 29538                 
       
 29539                         {
       
 29540                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 29541                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29542                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 29543                             symbol_c *P_type_symbol = NULL;
       
 29544                             
       
 29545                             /* Get the value from a foo(<param_value>) style call */
       
 29546                             if (P_param_value == NULL)
       
 29547                               P_param_value = function_call_param_iterator.next_nf();
       
 29548                             if (P_param_value != NULL) {
       
 29549                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 29550                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 29551                             }
       
 29552                             
       
 29553                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 29554                             {
       
 29555                         
       
 29556                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29557                                 return return_type_symbol;
       
 29558                                 
       
 29559                             }
       
 29560                             
       
 29561                             
       
 29562                             ERROR;
       
 29563                         }
       
 29564                         
       
 29565                     }
       
 29566                     
       
 29567                     
       
 29568                     ERROR;
       
 29569                 }
       
 29570                 
       
 29571             }
       
 29572             
       
 29573             
       
 29574             ERROR;
       
 29575         }
       
 29576         
       
 29577     }/*function_insert*/
       
 29578     break;
       
 29579 
       
 29580 /****
       
 29581  *DELETE
       
 29582  */
       
 29583     case function_delete :
       
 29584     {
       
 29585         symbol_c *last_type_symbol = NULL;
       
 29586 
       
 29587         {
       
 29588             symbol_c *IN_type_symbol = param_data_type;
       
 29589             last_type_symbol = IN_type_symbol;
       
 29590             
       
 29591             if(IN_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29592             {
       
 29593         
       
 29594                 {
       
 29595                     symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 29596                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29597                     symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 29598                     symbol_c *L_type_symbol = NULL;
       
 29599                     
       
 29600                     /* Get the value from a foo(<param_value>) style call */
       
 29601                     if (L_param_value == NULL)
       
 29602                       L_param_value = function_call_param_iterator.next_nf();
       
 29603                     if (L_param_value != NULL) {
       
 29604                       L_type_symbol = search_expression_type->get_type(L_param_value);
       
 29605                       last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 29606                     }
       
 29607                     
       
 29608                     if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 29609                     {
       
 29610                 
       
 29611                         {
       
 29612                             symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 29613                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29614                             symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 29615                             symbol_c *P_type_symbol = NULL;
       
 29616                             
       
 29617                             /* Get the value from a foo(<param_value>) style call */
       
 29618                             if (P_param_value == NULL)
       
 29619                               P_param_value = function_call_param_iterator.next_nf();
       
 29620                             if (P_param_value != NULL) {
       
 29621                               P_type_symbol = search_expression_type->get_type(P_param_value);
       
 29622                               last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 29623                             }
       
 29624                             
       
 29625                             if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 29626                             {
       
 29627                         
       
 29628                                 symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29629                                 return return_type_symbol;
       
 29630                                 
       
 29631                             }
       
 29632                             
       
 29633                             
       
 29634                             ERROR;
       
 29635                         }
       
 29636                         
       
 29637                     }
       
 29638                     
       
 29639                     
       
 29640                     ERROR;
       
 29641                 }
       
 29642                 
       
 29643             }
       
 29644             
       
 29645             
       
 29646             ERROR;
       
 29647         }
       
 29648         
       
 29649     }/*function_delete*/
       
 29650     break;
       
 29651 
       
 29652 /****
       
 29653  *REPLACE
       
 29654  */
       
 29655     case function_replace :
       
 29656     {
       
 29657         symbol_c *last_type_symbol = NULL;
       
 29658 
       
 29659         {
       
 29660             symbol_c *IN1_type_symbol = param_data_type;
       
 29661             last_type_symbol = IN1_type_symbol;
       
 29662             
       
 29663             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29664             {
       
 29665         
       
 29666                 {
       
 29667                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29668                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29669                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29670                     symbol_c *IN2_type_symbol = NULL;
       
 29671                     
       
 29672                     /* Get the value from a foo(<param_value>) style call */
       
 29673                     if (IN2_param_value == NULL)
       
 29674                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29675                     if (IN2_param_value != NULL) {
       
 29676                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29677                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29678                     }
       
 29679                     
       
 29680                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29681                     {
       
 29682                 
       
 29683                         {
       
 29684                             symbol_c *L_param_name = (symbol_c *)(new identifier_c("L"));
       
 29685                             /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29686                             symbol_c *L_param_value = function_call_param_iterator.search_f(L_param_name);
       
 29687                             symbol_c *L_type_symbol = NULL;
       
 29688                             
       
 29689                             /* Get the value from a foo(<param_value>) style call */
       
 29690                             if (L_param_value == NULL)
       
 29691                               L_param_value = function_call_param_iterator.next_nf();
       
 29692                             if (L_param_value != NULL) {
       
 29693                               L_type_symbol = search_expression_type->get_type(L_param_value);
       
 29694                               last_type_symbol = last_type_symbol && L_type_symbol && search_expression_type->is_same_type(L_type_symbol, last_type_symbol) ? search_expression_type->common_type(L_type_symbol, last_type_symbol) : L_type_symbol ;
       
 29695                             }
       
 29696                             
       
 29697                             if(L_type_symbol == NULL || search_expression_type->is_integer_type(L_type_symbol))
       
 29698                             {
       
 29699                         
       
 29700                                 {
       
 29701                                     symbol_c *P_param_name = (symbol_c *)(new identifier_c("P"));
       
 29702                                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29703                                     symbol_c *P_param_value = function_call_param_iterator.search_f(P_param_name);
       
 29704                                     symbol_c *P_type_symbol = NULL;
       
 29705                                     
       
 29706                                     /* Get the value from a foo(<param_value>) style call */
       
 29707                                     if (P_param_value == NULL)
       
 29708                                       P_param_value = function_call_param_iterator.next_nf();
       
 29709                                     if (P_param_value != NULL) {
       
 29710                                       P_type_symbol = search_expression_type->get_type(P_param_value);
       
 29711                                       last_type_symbol = last_type_symbol && P_type_symbol && search_expression_type->is_same_type(P_type_symbol, last_type_symbol) ? search_expression_type->common_type(P_type_symbol, last_type_symbol) : P_type_symbol ;
       
 29712                                     }
       
 29713                                     
       
 29714                                     if(P_type_symbol == NULL || search_expression_type->is_integer_type(P_type_symbol))
       
 29715                                     {
       
 29716                                 
       
 29717                                         symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
       
 29718                                         return return_type_symbol;
       
 29719                                         
       
 29720                                     }
       
 29721                                     
       
 29722                                     
       
 29723                                     ERROR;
       
 29724                                 }
       
 29725                                 
       
 29726                             }
       
 29727                             
       
 29728                             
       
 29729                             ERROR;
       
 29730                         }
       
 29731                         
       
 29732                     }
       
 29733                     
       
 29734                     
       
 29735                     ERROR;
       
 29736                 }
       
 29737                 
       
 29738             }
       
 29739             
       
 29740             
       
 29741             ERROR;
       
 29742         }
       
 29743         
       
 29744     }/*function_replace*/
       
 29745     break;
       
 29746 
       
 29747 /****
       
 29748  *FIND
       
 29749  */
       
 29750     case function_find :
       
 29751     {
       
 29752         symbol_c *last_type_symbol = NULL;
       
 29753 
       
 29754         {
       
 29755             symbol_c *IN1_type_symbol = param_data_type;
       
 29756             last_type_symbol = IN1_type_symbol;
       
 29757             
       
 29758             if(IN1_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29759             {
       
 29760         
       
 29761                 {
       
 29762                     symbol_c *IN2_param_name = (symbol_c *)(new identifier_c("IN2"));
       
 29763                     /* Get the value from a foo(<param_name> = <param_value>) style call */
       
 29764                     symbol_c *IN2_param_value = function_call_param_iterator.search_f(IN2_param_name);
       
 29765                     symbol_c *IN2_type_symbol = NULL;
       
 29766                     
       
 29767                     /* Get the value from a foo(<param_value>) style call */
       
 29768                     if (IN2_param_value == NULL)
       
 29769                       IN2_param_value = function_call_param_iterator.next_nf();
       
 29770                     if (IN2_param_value != NULL) {
       
 29771                       IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
       
 29772                       last_type_symbol = last_type_symbol && IN2_type_symbol && search_expression_type->is_same_type(IN2_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN2_type_symbol, last_type_symbol) : IN2_type_symbol ;
       
 29773                     }
       
 29774                     
       
 29775                     if(IN2_type_symbol == NULL || search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
       
 29776                     {
       
 29777                 
       
 29778                         symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
       
 29779                         return return_type_symbol;
       
 29780                         
       
 29781                     }
       
 29782                     
       
 29783                     
       
 29784                     ERROR;
       
 29785                 }
       
 29786                 
       
 29787             }
       
 29788             
       
 29789             
       
 29790             ERROR;
       
 29791         }
       
 29792         
       
 29793     }/*function_find*/
       
 29794     break;
       
 29795 
       
 29796     case function_none :
       
 29797     ERROR;
       
 29798   }
       
 29799   return NULL;
       
 29800 }