stage4/generate_c/search_type_code.c
author greg
Wed, 26 Nov 2008 09:06:52 +0100
changeset 153 6aed920024f9
parent 149 05ca171a3d57
child 165 83963465b773
permissions -rw-r--r--
Modifying MOVE interface
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     1
/*
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
     2
 * (c) 2008 Edouard TISSERANT
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     3
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     4
 * Offered to the public under the terms of the GNU General Public License
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     5
 * as published by the Free Software Foundation; either version 2 of the
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     6
 * License, or (at your option) any later version.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     7
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     8
 * This program is distributed in the hope that it will be useful, but
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
     9
 * WITHOUT ANY WARRANTY; without even the implied warranty of
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    11
 * Public License for more details.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    12
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    13
 * This code is made available on the understanding that it will not be
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    14
 * used in safety-critical situations without a full and competent review.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    15
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    16
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    17
/*
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    18
 * An IEC 61131-3 IL and ST compiler.
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    19
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    20
 * Based on the
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    21
 * FINAL DRAFT - IEC 61131-3, 2nd Ed. (2001-12-10)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    22
 *
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    23
 */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    24
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    25
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    26
 * IEC 61131-3 standard function library
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    27
 * generated code, do not edit by hand
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    28
 */
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    29
 
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    30
 
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    31
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    32
void *compute_standard_function_default(function_invocation_c *st_symbol = NULL, il_formal_funct_call_c *il_symbol = NULL) {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    33
  function_type_t current_function_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    34
  function_call_param_iterator_c *tmp_function_call_param_iterator;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    35
  if (st_symbol != NULL && il_symbol == NULL) {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    36
    current_function_type = get_function_type((identifier_c *)st_symbol->function_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    37
    tmp_function_call_param_iterator = new function_call_param_iterator_c(st_symbol);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    38
  }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    39
  else if (st_symbol == NULL && il_symbol != NULL) {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    40
    current_function_type = get_function_type((identifier_c *)il_symbol->function_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    41
    tmp_function_call_param_iterator = new function_call_param_iterator_c(il_symbol);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    42
  }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    43
  else
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    44
    ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    45
  function_call_param_iterator_c function_call_param_iterator(*tmp_function_call_param_iterator);
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    46
  search_expression_type_c* search_expression_type = this;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    47
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    48
  switch(current_function_type){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    49
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    50
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    51
 *REAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    52
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    53
    case function_real_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    54
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    55
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    56
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    57
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    58
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    59
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    60
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    61
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    62
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    63
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    64
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    65
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    66
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    67
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    68
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    69
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    70
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    71
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    72
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    73
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    74
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    75
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    76
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    77
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    78
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    79
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    80
    }/*function_real_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    81
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    82
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    83
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    84
 *REAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    85
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    86
    case function_real_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    87
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    88
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    89
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    90
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    91
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    92
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    93
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    94
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    95
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    96
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    97
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    98
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    99
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   100
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   101
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   102
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   103
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   104
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   105
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   106
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   107
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   108
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   109
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   110
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   111
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   112
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   113
    }/*function_real_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   114
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   115
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   116
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   117
 *REAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   118
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   119
    case function_real_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   120
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   121
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   122
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   123
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   124
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   125
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   126
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   127
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   128
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   129
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   130
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   131
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   132
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   133
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   134
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   135
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   136
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   137
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   138
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   139
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   140
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   142
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   143
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   144
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   145
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   146
    }/*function_real_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   147
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   148
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   149
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   150
 *REAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   151
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   152
    case function_real_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   153
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   154
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   155
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   156
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   157
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   158
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   159
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   160
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   161
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   162
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   163
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   164
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   165
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   166
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   167
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   168
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   169
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   170
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   171
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   172
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   173
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   174
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   175
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   176
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   177
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   178
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   179
    }/*function_real_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   180
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   181
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   182
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   183
 *REAL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   184
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   185
    case function_real_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   186
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   187
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   188
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   189
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   190
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   191
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   192
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   193
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   194
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   195
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   196
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   197
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   198
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   199
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   200
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   201
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   202
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   203
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   204
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   205
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   206
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   207
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   208
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   209
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   210
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   211
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   212
    }/*function_real_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   213
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   214
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   215
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   216
 *REAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   217
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   218
    case function_real_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   219
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   220
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   221
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   222
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   223
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   224
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   225
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   226
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   227
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   228
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   229
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   230
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   231
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   232
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   233
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   234
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   235
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   236
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   237
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   238
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   239
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   240
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   241
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   242
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   243
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   244
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   245
    }/*function_real_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   246
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   247
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   248
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   249
 *REAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   250
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   251
    case function_real_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   252
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   253
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   254
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   255
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   256
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   257
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   258
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   259
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   260
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   261
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   262
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   263
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   264
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   265
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   266
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   267
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   268
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   269
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   270
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   271
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   272
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   273
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   274
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   275
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   276
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   277
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   278
    }/*function_real_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   279
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   280
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   281
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   282
 *REAL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   283
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   284
    case function_real_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   285
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   286
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   287
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   288
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   289
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   290
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   291
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   292
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   293
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   294
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   295
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   296
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   297
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   298
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   299
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   300
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   301
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   302
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   303
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   304
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   305
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   306
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   307
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   308
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   309
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   310
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   311
    }/*function_real_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   312
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   313
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   314
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   315
 *REAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   316
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   317
    case function_real_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   318
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   319
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   320
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   321
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   322
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   323
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   324
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   325
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   326
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   327
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   328
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   329
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   330
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   331
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   332
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   333
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   334
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   335
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   336
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   337
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   338
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   339
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   340
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   341
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   342
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   343
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   344
    }/*function_real_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   345
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   346
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   347
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   348
 *REAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   349
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   350
    case function_real_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   351
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   352
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   353
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   354
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   355
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   356
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   357
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   358
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   359
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   360
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   361
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   362
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   363
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   364
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   365
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   366
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   367
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   368
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   369
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   370
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   371
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   372
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   373
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   374
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   375
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   376
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   377
    }/*function_real_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   378
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   379
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   380
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   381
 *REAL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   382
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   383
    case function_real_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   384
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   385
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   386
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   387
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   388
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   389
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   390
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   391
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   392
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   393
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   394
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   395
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   396
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   397
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   398
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   399
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   400
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   401
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   402
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   403
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   404
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   406
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   407
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   408
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   409
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   410
    }/*function_real_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   411
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   412
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   413
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   414
 *REAL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   415
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   416
    case function_real_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   417
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   418
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   419
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   420
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   421
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   422
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   423
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   424
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   425
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   426
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   427
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   428
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   429
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   430
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   431
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   432
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   433
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   434
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   435
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   436
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   437
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   438
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   439
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   440
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   441
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   442
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   443
    }/*function_real_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   444
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   445
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   446
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   447
 *REAL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   448
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   449
    case function_real_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   450
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   451
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   452
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   453
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   454
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   455
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   456
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   457
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   458
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   459
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   460
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   461
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   462
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   463
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   464
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   465
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   466
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   467
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   468
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   469
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   470
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   471
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   472
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   473
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   474
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   475
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   476
    }/*function_real_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   477
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   478
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   479
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   480
 *REAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   481
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   482
    case function_real_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   483
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   484
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   485
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   486
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   487
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   488
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   489
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   490
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   491
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   492
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   493
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   494
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   495
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   496
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   497
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   498
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   499
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   500
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   501
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   502
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   503
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   504
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   505
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   506
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   507
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   508
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   509
    }/*function_real_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   510
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   511
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   512
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   513
 *REAL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   514
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   515
    case function_real_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   516
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   517
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   518
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   519
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   520
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   521
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   522
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   523
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   524
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   525
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   526
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   527
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   528
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   529
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   530
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   531
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   532
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   533
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   534
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   535
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   536
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   537
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   538
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   539
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   540
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   541
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   542
    }/*function_real_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   543
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   544
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   545
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   546
 *REAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   547
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   548
    case function_real_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   549
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   550
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   551
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   552
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   553
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   554
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   555
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   556
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   557
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   558
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   559
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   560
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   561
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   562
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   563
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   564
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   565
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   566
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   567
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   568
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   569
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   570
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   571
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   572
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   573
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   574
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   575
    }/*function_real_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   576
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   577
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   578
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   579
 *REAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   580
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   581
    case function_real_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   582
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   583
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   584
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   585
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   586
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   587
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   588
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   589
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   590
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   591
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   592
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   593
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   594
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   595
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   596
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   597
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   598
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   599
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   600
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   601
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   602
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   603
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   604
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   605
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   606
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   607
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   608
    }/*function_real_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   609
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   610
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   611
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   612
 *REAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   613
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   614
    case function_real_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   615
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   616
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   617
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   618
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   619
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   620
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   621
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   622
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   623
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   624
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   625
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   626
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   627
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   628
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   629
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   630
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   631
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   632
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   633
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   634
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   635
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   636
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   637
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   638
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   639
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   640
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   641
    }/*function_real_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   642
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   643
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   644
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   645
 *REAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   646
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   647
    case function_real_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   648
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   649
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   650
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   651
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   652
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   653
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   654
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   655
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   656
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   657
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   658
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   659
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   660
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   661
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   662
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   663
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   664
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   665
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   666
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   667
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   668
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   669
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   670
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   671
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   672
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   673
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   674
    }/*function_real_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   675
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   676
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   677
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   678
 *SINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   679
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   680
    case function_sint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   681
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   682
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   683
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   684
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   685
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   686
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   687
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   688
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   689
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   690
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   691
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   692
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   693
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   694
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   695
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   696
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   697
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   698
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   699
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   700
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   701
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   702
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   703
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   704
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   705
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   706
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   707
    }/*function_sint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   708
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   709
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   710
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   711
 *SINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   712
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   713
    case function_sint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   714
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   715
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   716
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   717
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   718
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   719
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   720
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   721
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   722
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   723
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   724
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   725
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   726
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   727
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   728
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   729
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   730
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   731
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   732
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   733
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   734
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   735
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   736
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   737
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   738
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   739
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   740
    }/*function_sint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   741
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   742
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   743
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   744
 *SINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   745
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   746
    case function_sint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   747
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   748
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   749
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   750
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   751
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   752
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   753
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   754
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   755
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   756
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   757
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   758
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   759
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   760
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   761
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   762
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   763
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   764
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   765
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   766
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   767
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   768
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   769
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   770
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   771
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   772
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   773
    }/*function_sint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   774
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   775
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   776
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   777
 *SINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   778
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   779
    case function_sint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   780
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   781
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   782
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   783
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   784
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   785
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   786
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   787
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   788
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   789
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   790
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   791
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   792
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   793
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   794
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   795
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   796
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   797
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   798
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   799
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   800
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   801
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   802
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   803
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   804
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   805
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   806
    }/*function_sint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   807
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   808
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   809
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   810
 *SINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   811
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   812
    case function_sint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   813
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   814
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   815
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   816
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   817
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   818
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   819
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   820
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   821
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   822
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   823
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   824
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   825
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   826
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   827
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   828
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   829
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   830
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   831
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   832
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   833
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   834
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   835
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   836
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   837
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   839
    }/*function_sint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   840
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   841
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   842
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   843
 *SINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   844
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   845
    case function_sint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   846
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   847
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   848
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   849
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   850
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   851
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   852
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   853
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   854
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   855
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   856
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   857
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   858
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   860
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   861
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   862
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   863
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   864
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   865
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   866
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   867
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   868
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   869
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   870
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   871
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   872
    }/*function_sint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   873
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   874
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   875
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   876
 *SINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   877
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   878
    case function_sint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   879
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   880
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   881
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   882
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   883
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   884
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   885
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   886
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   887
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   888
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   889
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   890
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   891
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   892
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   893
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   894
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   895
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   896
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   897
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   898
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   899
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   900
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   901
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   902
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   903
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   904
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   905
    }/*function_sint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   906
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   907
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   908
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   909
 *SINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   910
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   911
    case function_sint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   912
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   913
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   914
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   915
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   916
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   917
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   918
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   919
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   920
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   921
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   922
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   923
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   924
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   925
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   926
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   927
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   928
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   929
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   930
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   931
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   932
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   933
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   934
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   935
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   936
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   937
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   938
    }/*function_sint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   939
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   940
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   941
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   942
 *SINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   943
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   944
    case function_sint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   945
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   946
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   947
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   948
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   949
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   950
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   951
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   952
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   953
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   954
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   955
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   956
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   957
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   958
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   959
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   960
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   961
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   962
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   963
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   964
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   965
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   966
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   967
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   968
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   969
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   970
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   971
    }/*function_sint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   972
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   973
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   974
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   975
 *SINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   976
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   977
    case function_sint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   978
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   979
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   980
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   981
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   982
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   983
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   984
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   985
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   986
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   987
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   988
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   989
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   990
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   991
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   992
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   993
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   994
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   995
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   996
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   997
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   998
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   999
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1000
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1001
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1002
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1003
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1004
    }/*function_sint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1005
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1006
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1007
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1008
 *SINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1009
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1010
    case function_sint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1011
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1012
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1013
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1014
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1015
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1016
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1017
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1018
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1019
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1020
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1021
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1022
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1023
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1024
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1025
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1026
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1027
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1028
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1029
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1030
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1031
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1032
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1033
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1034
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1035
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1036
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1037
    }/*function_sint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1038
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1039
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1040
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1041
 *SINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1042
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1043
    case function_sint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1044
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1045
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1046
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1047
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1048
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1049
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1050
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1051
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1052
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1053
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1054
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1055
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1056
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1057
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1058
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1059
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1060
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1061
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1062
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1063
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1064
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1065
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1066
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1067
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1068
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1069
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1070
    }/*function_sint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1071
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1072
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1073
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1074
 *SINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1075
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1076
    case function_sint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1077
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1078
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1079
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1080
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1081
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1082
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1083
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1084
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1085
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1086
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1087
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1088
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1089
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1090
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1091
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1092
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1093
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1094
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1095
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1096
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1097
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1098
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1099
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1100
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1101
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1102
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1103
    }/*function_sint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1104
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1105
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1106
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1107
 *SINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1108
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1109
    case function_sint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1110
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1111
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1112
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1113
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1114
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1115
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1116
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1117
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1118
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1119
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1120
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1121
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1122
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1123
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1124
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1125
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1126
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1127
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1128
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1129
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1130
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1131
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1132
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1133
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1134
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1135
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1136
    }/*function_sint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1137
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1138
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1139
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1140
 *SINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1141
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1142
    case function_sint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1143
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1144
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1145
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1146
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1147
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1148
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1149
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1150
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1151
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1152
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1153
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1154
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1155
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1156
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1157
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1158
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1159
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1160
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1161
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1162
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1163
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1164
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1165
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1166
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1167
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1168
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1169
    }/*function_sint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1170
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1171
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1172
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1173
 *SINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1174
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1175
    case function_sint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1176
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1177
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1178
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1179
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1180
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1181
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1182
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1183
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1184
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1185
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1186
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1187
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1188
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1189
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1190
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1191
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1192
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1193
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1194
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1195
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1196
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1197
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1198
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1199
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1200
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1201
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1202
    }/*function_sint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1203
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1204
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1205
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1206
 *SINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1207
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1208
    case function_sint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1209
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1210
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1211
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1212
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1213
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1214
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1215
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1216
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1217
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1218
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1219
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1220
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1221
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1222
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1223
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1224
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1225
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1226
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1227
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1228
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1229
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1230
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1231
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1232
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1233
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1234
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1235
    }/*function_sint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1236
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1237
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1238
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1239
 *SINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1240
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1241
    case function_sint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1242
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1243
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1244
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1245
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1246
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1247
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1248
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1249
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1250
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1251
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1252
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1253
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1254
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1255
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1256
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1257
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1258
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1259
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1260
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1261
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1262
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1263
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1264
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1265
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1266
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1267
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1268
    }/*function_sint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1269
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1270
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1271
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1272
 *SINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1273
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1274
    case function_sint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1275
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1276
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1277
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1278
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1279
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1280
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1281
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1282
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1283
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1284
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1285
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1286
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1287
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1288
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1289
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1290
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1291
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1292
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1293
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1294
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1295
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1296
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1298
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1299
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1301
    }/*function_sint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1302
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1303
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1304
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1305
 *LINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1306
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1307
    case function_lint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1308
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1309
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1310
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1311
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1312
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1313
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1314
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1315
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1316
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1317
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1318
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1319
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1320
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1321
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1322
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1323
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1324
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1325
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1326
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1327
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1328
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1329
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1330
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1331
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1332
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1333
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1334
    }/*function_lint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1335
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1336
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1337
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1338
 *LINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1339
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1340
    case function_lint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1341
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1342
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1343
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1344
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1345
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1346
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1347
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1348
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1349
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1350
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1351
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1352
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1353
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1354
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1355
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1356
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1357
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1358
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1359
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1360
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1361
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1362
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1363
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1364
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1365
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1366
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1367
    }/*function_lint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1368
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1369
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1370
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1371
 *LINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1372
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1373
    case function_lint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1374
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1375
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1376
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1377
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1378
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1379
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1380
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1381
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1382
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1383
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1384
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1385
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1386
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1387
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1388
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1389
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1390
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1391
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1392
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1393
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1394
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1395
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1396
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1397
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1398
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1399
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1400
    }/*function_lint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1401
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1402
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1403
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1404
 *LINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1405
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1406
    case function_lint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1407
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1408
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1409
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1410
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1411
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1412
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1413
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1414
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1415
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1416
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1417
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1418
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1419
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1420
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1421
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1422
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1423
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1424
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1425
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1426
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1427
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1428
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1429
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1430
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1431
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1432
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1433
    }/*function_lint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1434
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1435
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1436
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1437
 *LINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1438
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1439
    case function_lint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1440
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1441
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1442
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1443
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1444
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1445
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1446
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1447
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1448
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1449
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1450
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1451
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1452
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1454
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1455
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1456
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1457
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1458
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1459
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1460
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1461
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1462
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1463
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1464
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1465
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1466
    }/*function_lint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1467
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1468
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1469
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1470
 *LINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1471
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1472
    case function_lint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1473
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1474
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1475
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1476
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1477
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1478
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1479
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1480
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1481
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1482
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1483
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1484
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1485
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1486
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1487
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1488
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1489
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1490
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1491
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1492
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1493
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1494
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1496
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1497
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1498
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1499
    }/*function_lint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1500
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1501
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1502
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1503
 *LINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1504
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1505
    case function_lint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1506
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1507
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1508
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1509
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1510
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1511
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1512
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1513
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1514
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1515
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1516
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1517
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1518
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1519
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1520
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1521
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1522
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1523
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1524
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1525
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1526
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1527
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1528
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1529
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1530
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1531
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1532
    }/*function_lint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1533
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1534
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1535
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1536
 *LINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1537
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1538
    case function_lint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1539
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1540
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1541
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1542
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1543
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1544
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1545
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1546
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1547
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1548
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1549
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1550
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1551
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1552
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1553
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1554
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1555
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1556
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1557
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1558
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1559
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1560
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1561
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1562
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1563
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1564
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1565
    }/*function_lint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1566
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1567
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1568
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1569
 *LINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1570
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1571
    case function_lint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1572
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1573
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1574
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1575
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1576
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1577
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1578
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1579
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1580
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1581
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1582
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1583
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1584
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1585
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1586
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1587
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1588
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1589
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1590
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1591
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1592
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1593
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1594
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1595
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1596
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1597
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1598
    }/*function_lint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1599
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1600
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1601
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1602
 *LINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1603
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1604
    case function_lint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1605
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1606
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1607
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1608
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1609
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1610
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1611
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1612
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1613
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1614
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1615
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1616
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1617
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1618
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1619
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1620
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1621
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1622
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1623
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1624
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1625
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1626
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1627
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1628
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1629
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1630
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1631
    }/*function_lint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1632
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1633
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1634
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1635
 *LINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1636
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1637
    case function_lint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1638
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1639
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1640
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1641
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1642
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1643
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1644
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1645
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1646
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1647
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1648
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1649
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1650
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1651
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1652
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1653
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1654
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1655
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1656
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1657
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1658
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1660
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1661
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1662
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1664
    }/*function_lint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1665
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1666
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1667
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1668
 *LINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1669
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1670
    case function_lint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1671
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1672
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1673
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1674
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1675
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1676
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1677
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1678
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1679
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1680
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1681
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1682
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1683
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1684
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1685
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1686
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1687
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1688
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1689
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1690
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1691
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1692
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1693
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1694
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1695
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1696
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1697
    }/*function_lint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1698
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1699
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1700
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1701
 *LINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1702
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1703
    case function_lint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1704
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1705
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1706
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1707
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1708
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1709
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1710
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1711
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1712
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1713
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1714
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1715
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1716
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1717
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1718
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1719
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1720
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1721
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1722
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1723
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1724
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1725
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1726
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1727
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1728
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1729
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1730
    }/*function_lint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1731
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1732
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1733
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1734
 *LINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1735
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1736
    case function_lint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1737
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1738
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1739
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1740
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1741
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1742
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1743
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1744
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1745
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1746
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1747
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1748
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1749
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1750
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1751
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1752
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1753
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1754
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1755
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1756
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1757
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1758
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1759
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1760
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1761
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1762
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1763
    }/*function_lint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1764
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1765
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1766
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1767
 *LINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1768
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1769
    case function_lint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1770
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1771
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1772
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1773
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1774
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1775
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1776
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1777
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1778
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1779
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1780
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1781
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1782
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1783
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1784
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1785
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1786
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1787
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1788
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1789
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1790
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1791
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1792
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1793
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1794
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1795
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1796
    }/*function_lint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1797
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1798
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1799
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1800
 *LINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1801
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1802
    case function_lint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1803
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1804
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1805
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1806
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1807
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1808
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1809
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1810
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1811
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1812
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1813
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1814
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1815
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1816
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1817
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1818
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1819
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1820
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1821
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1822
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1823
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1824
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1825
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1826
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1827
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1828
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1829
    }/*function_lint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1830
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1831
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1832
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1833
 *LINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1834
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1835
    case function_lint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1836
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1837
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1838
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1839
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1840
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1841
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1842
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1843
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1844
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1845
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1846
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1847
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1848
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1849
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1850
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1851
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1852
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1853
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1854
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1855
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1856
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1857
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1858
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1859
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1860
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1861
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1862
    }/*function_lint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1863
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1864
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1865
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1866
 *LINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1867
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1868
    case function_lint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1869
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1870
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1871
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1872
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1873
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1874
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1875
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1876
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1877
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1878
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1879
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1880
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1881
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1882
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1883
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1884
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1885
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1886
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1887
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1888
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1889
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1890
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1891
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1892
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1893
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1894
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1895
    }/*function_lint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1896
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1897
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1898
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1899
 *LINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1900
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1901
    case function_lint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1902
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1903
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1904
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1905
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1906
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1907
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1908
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1909
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1910
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1911
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1912
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1913
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1914
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1915
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1916
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1917
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1918
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1919
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1920
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1921
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1922
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1923
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1924
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1925
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1926
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1928
    }/*function_lint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1929
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1930
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1931
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1932
 *DINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1933
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1934
    case function_dint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1935
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1936
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1937
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1938
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1939
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1940
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1941
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1942
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1943
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1944
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1945
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1946
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1947
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1948
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1949
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1950
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1951
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1952
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1953
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1954
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1955
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1956
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1957
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1958
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1959
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1960
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1961
    }/*function_dint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1962
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1963
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1964
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1965
 *DINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1966
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1967
    case function_dint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1968
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1969
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1970
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1971
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1972
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1973
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1974
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1975
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1976
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1977
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1978
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1979
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1980
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1982
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1983
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1984
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1985
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1986
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1987
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1988
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1989
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1990
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1991
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1992
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1993
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1994
    }/*function_dint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1995
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1996
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1997
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1998
 *DINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1999
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2000
    case function_dint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2001
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2002
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2003
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2004
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2005
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2006
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2007
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2009
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2010
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2011
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2012
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2013
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2014
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2015
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2016
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2017
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2018
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2019
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2020
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2021
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2022
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2023
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2024
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2025
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2026
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2027
    }/*function_dint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2028
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2029
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2030
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2031
 *DINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2032
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2033
    case function_dint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2034
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2035
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2036
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2037
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2038
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2039
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2040
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2041
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2042
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2043
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2044
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2045
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2046
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2047
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2048
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2049
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2050
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2051
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2052
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2053
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2054
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2055
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2056
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2057
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2058
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2059
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2060
    }/*function_dint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2061
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2062
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2063
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2064
 *DINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2065
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2066
    case function_dint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2067
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2068
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2069
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2070
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2071
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2072
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2073
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2074
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2075
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2076
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2077
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2078
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2079
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2080
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2081
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2082
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2083
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2084
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2085
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2086
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2087
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2088
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2090
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2091
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2092
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2093
    }/*function_dint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2094
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2095
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2096
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2097
 *DINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2098
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2099
    case function_dint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2100
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2101
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2102
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2103
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2104
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2105
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2106
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2107
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2108
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2109
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2110
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2111
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2112
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2113
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2114
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2115
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2116
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2117
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2118
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2119
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2120
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2121
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2122
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2123
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2124
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2125
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2126
    }/*function_dint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2127
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2128
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2129
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2130
 *DINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2131
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2132
    case function_dint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2133
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2134
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2135
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2136
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2137
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2138
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2139
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2140
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2141
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2142
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2143
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2144
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2145
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2146
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2147
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2148
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2149
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2150
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2151
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2152
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2153
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2155
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2156
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2157
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2159
    }/*function_dint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2160
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2161
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2162
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2163
 *DINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2164
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2165
    case function_dint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2166
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2167
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2168
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2169
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2170
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2171
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2172
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2173
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2174
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2175
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2176
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2177
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2178
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2179
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2180
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2181
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2182
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2183
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2184
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2185
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2186
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2187
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2188
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2189
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2190
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2191
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2192
    }/*function_dint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2193
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2194
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2195
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2196
 *DINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2197
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2198
    case function_dint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2199
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2200
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2201
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2202
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2203
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2204
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2205
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2206
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2207
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2208
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2209
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2210
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2211
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2212
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2213
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2214
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2215
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2216
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2217
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2218
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2219
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2220
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2221
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2222
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2223
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2224
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2225
    }/*function_dint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2226
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2227
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2228
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2229
 *DINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2230
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2231
    case function_dint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2232
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2233
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2234
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2235
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2236
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2237
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2238
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2239
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2240
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2241
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2242
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2243
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2244
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2245
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2246
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2247
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2248
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2249
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2250
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2251
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2252
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2254
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2255
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2256
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2257
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2258
    }/*function_dint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2259
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2260
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2261
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2262
 *DINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2263
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2264
    case function_dint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2265
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2266
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2267
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2268
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2269
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2270
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2271
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2272
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2273
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2274
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2275
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2276
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2277
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2278
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2279
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2280
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2281
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2282
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2283
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2284
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2285
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2286
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2288
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2289
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2290
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2291
    }/*function_dint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2292
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2293
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2294
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2295
 *DINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2296
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2297
    case function_dint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2298
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2299
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2300
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2301
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2302
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2303
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2304
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2305
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2306
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2307
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2308
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2309
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2310
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2311
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2312
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2313
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2314
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2315
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2316
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2317
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2318
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2319
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2320
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2321
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2322
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2323
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2324
    }/*function_dint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2325
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2326
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2327
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2328
 *DINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2329
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2330
    case function_dint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2331
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2332
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2333
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2334
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2335
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2336
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2337
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2338
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2339
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2340
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2341
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2342
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2343
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2344
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2345
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2346
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2347
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2348
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2349
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2350
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2351
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2352
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2353
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2354
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2355
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2356
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2357
    }/*function_dint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2358
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2359
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2360
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2361
 *DINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2362
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2363
    case function_dint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2364
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2365
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2366
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2367
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2368
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2369
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2370
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2371
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2372
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2373
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2374
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2375
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2376
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2377
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2378
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2379
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2380
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2381
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2382
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2383
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2384
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2385
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2386
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2387
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2388
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2389
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2390
    }/*function_dint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2391
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2392
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2393
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2394
 *DINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2395
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2396
    case function_dint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2397
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2398
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2399
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2400
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2401
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2402
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2403
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2404
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2405
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2406
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2407
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2408
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2409
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2410
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2411
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2412
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2413
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2414
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2415
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2416
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2417
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2418
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2419
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2420
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2421
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2422
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2423
    }/*function_dint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2424
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2425
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2426
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2427
 *DINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2428
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2429
    case function_dint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2430
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2431
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2432
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2433
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2434
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2435
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2436
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2437
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2438
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2439
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2440
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2441
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2442
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2443
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2444
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2445
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2446
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2447
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2448
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2449
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2450
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2451
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2452
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2453
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2454
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2455
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2456
    }/*function_dint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2457
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2458
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2459
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2460
 *DINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2461
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2462
    case function_dint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2463
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2464
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2465
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2466
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2467
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2468
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2469
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2470
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2471
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2472
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2473
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2474
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2475
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2476
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2477
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2478
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2479
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2480
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2481
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2482
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2483
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2484
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2485
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2486
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2487
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2488
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2489
    }/*function_dint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2490
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2491
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2492
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2493
 *DINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2494
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2495
    case function_dint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2496
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2497
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2498
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2499
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2500
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2501
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2502
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2504
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2505
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2506
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2507
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2508
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2509
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2510
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2511
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2512
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2513
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2514
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2515
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2516
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2517
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2518
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2519
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2520
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2521
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2522
    }/*function_dint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2523
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2524
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2525
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2526
 *DINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2527
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2528
    case function_dint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2529
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2530
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2531
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2532
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2533
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2534
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2535
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2536
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2537
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2538
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2539
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2540
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2541
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2542
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2543
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2544
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2545
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2546
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2547
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2548
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2549
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2550
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2551
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2552
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2553
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2554
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2555
    }/*function_dint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2556
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2557
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2558
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2559
 *DATE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2560
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2561
    case function_date_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2562
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2563
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2564
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2565
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2566
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2567
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2568
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2569
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2570
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2571
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2572
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2573
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2574
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2575
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2576
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2577
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2578
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2579
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2580
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2581
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2582
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2583
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2584
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2585
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2586
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2587
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2588
    }/*function_date_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2589
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2590
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2591
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2592
 *DATE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2593
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2594
    case function_date_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2595
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2596
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2597
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2598
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2599
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2600
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2601
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2602
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2603
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2604
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2605
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2606
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2607
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2608
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2609
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2610
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2611
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2612
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2613
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2614
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2615
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2616
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2617
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2618
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2619
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2620
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2621
    }/*function_date_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2622
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2623
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2624
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2625
 *DATE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2626
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2627
    case function_date_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2628
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2629
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2630
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2631
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2632
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2633
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2634
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2635
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2636
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2637
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2638
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2639
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2640
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2641
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2642
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2643
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2644
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2645
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2646
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2647
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2648
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2649
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2650
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2651
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2652
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2653
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2654
    }/*function_date_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2655
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2656
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2657
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2658
 *DATE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2659
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2660
    case function_date_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2661
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2662
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2663
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2664
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2665
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2666
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2667
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2668
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2669
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2670
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2671
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2672
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2673
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2674
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2675
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2676
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2677
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2678
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2679
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2680
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2681
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2682
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2683
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2684
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2685
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2686
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2687
    }/*function_date_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2688
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2689
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2690
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2691
 *DATE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2692
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2693
    case function_date_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2694
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2695
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2696
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2697
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2698
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2699
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2700
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2701
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2702
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2703
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2704
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2705
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2706
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2707
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2708
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2709
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2710
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2711
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2712
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2713
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2714
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2715
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2716
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2717
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2718
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2719
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2720
    }/*function_date_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2721
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2722
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2723
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2724
 *DATE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2725
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2726
    case function_date_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2727
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2728
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2729
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2730
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2731
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2732
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2733
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2734
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2735
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2736
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2737
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2738
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2739
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2740
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2741
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2742
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2743
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2744
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2745
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2746
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2747
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2748
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2749
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2750
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2751
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2752
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2753
    }/*function_date_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2754
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2755
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2756
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2757
 *DATE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2758
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2759
    case function_date_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2760
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2761
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2762
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2763
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2764
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2765
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2766
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2767
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2768
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2769
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2770
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2771
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2772
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2773
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2774
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2775
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2776
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2777
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2778
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2779
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2780
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2781
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2782
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2783
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2784
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2785
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2786
    }/*function_date_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2787
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2788
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2789
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2790
 *DATE_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2791
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2792
    case function_date_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2793
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2794
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2795
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2796
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2797
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2798
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2799
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2800
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2801
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2802
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2803
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2804
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2805
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2806
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2807
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2808
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2809
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2810
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2811
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2812
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2813
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2814
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2815
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2816
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2817
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2818
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2819
    }/*function_date_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2820
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2821
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2822
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2823
 *DATE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2824
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2825
    case function_date_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2826
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2827
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2828
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2829
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2830
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2831
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2832
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2833
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2834
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2835
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2836
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2837
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2838
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2839
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2840
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2841
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2842
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2843
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2844
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2845
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2846
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2847
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2848
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2849
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2850
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2851
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2852
    }/*function_date_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2853
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2854
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2855
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2856
 *DATE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2857
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2858
    case function_date_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2859
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2860
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2861
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2862
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2863
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2864
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2865
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2866
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2867
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2868
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2869
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2870
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2871
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2872
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2873
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2874
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2875
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2876
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2877
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2878
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2879
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2880
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2881
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2882
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2883
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2884
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2885
    }/*function_date_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2886
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2887
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2888
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2889
 *DATE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2890
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2891
    case function_date_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2892
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2893
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2894
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2895
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2896
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2897
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2898
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2899
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2900
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2901
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2902
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2903
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2904
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2905
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2906
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2907
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2908
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2909
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2910
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2911
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2912
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2913
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2914
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2915
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2916
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2917
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2918
    }/*function_date_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2919
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2920
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2921
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2922
 *DATE_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2923
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2924
    case function_date_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2925
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2926
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2927
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2928
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2929
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2930
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2931
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2932
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2933
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2934
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2935
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2936
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2937
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2938
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2939
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2940
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2941
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2942
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2943
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2944
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2945
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2946
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2947
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2948
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2949
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2950
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2951
    }/*function_date_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2952
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2953
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2954
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2955
 *DATE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2956
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2957
    case function_date_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2958
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2959
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2960
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2961
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2962
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2963
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2964
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2965
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2966
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2967
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2968
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2969
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2970
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2971
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2972
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2973
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2974
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2975
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2976
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2977
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2978
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2979
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2980
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2981
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2982
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2983
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2984
    }/*function_date_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2985
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2986
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2987
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2988
 *DATE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2989
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2990
    case function_date_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2991
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2992
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2993
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2994
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2995
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2996
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2997
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2998
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2999
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3000
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3001
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3002
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3003
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3004
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3005
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3006
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3007
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3008
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3009
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3010
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3011
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3012
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3013
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3014
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3015
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3016
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3017
    }/*function_date_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3018
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3019
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3020
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3021
 *DATE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3022
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3023
    case function_date_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3024
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3025
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3026
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3027
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3028
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3029
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3030
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3031
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3032
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3033
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3034
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3035
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3036
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3037
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3038
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3039
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3040
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3041
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3042
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3043
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3044
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3045
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3046
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3047
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3048
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3049
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3050
    }/*function_date_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3051
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3052
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3053
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3054
 *DWORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3055
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3056
    case function_dword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3057
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3058
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3059
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3060
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3061
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3062
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3063
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3064
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3065
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3066
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3067
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3068
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3069
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3070
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3071
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3072
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3073
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3074
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3075
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3076
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3077
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3078
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3079
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3080
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3081
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3082
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3083
    }/*function_dword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3084
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3085
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3086
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3087
 *DWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3088
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3089
    case function_dword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3090
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3091
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3092
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3093
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3094
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3095
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3096
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3098
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3099
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3100
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3101
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3102
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3103
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3104
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3105
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3106
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3107
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3108
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3109
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3110
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3111
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3112
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3113
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3114
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3115
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3116
    }/*function_dword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3117
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3118
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3119
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3120
 *DWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3121
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3122
    case function_dword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3123
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3124
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3125
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3126
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3127
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3128
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3129
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3130
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3131
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3132
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3133
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3134
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3135
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3136
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3137
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3138
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3139
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3140
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3141
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3142
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3143
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3144
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3145
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3146
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3147
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3148
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3149
    }/*function_dword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3150
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3151
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3152
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3153
 *DWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3154
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3155
    case function_dword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3156
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3157
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3158
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3159
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3160
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3161
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3162
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3163
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3164
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3165
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3166
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3167
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3168
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3169
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3170
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3171
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3172
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3173
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3174
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3175
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3176
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3177
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3178
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3179
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3180
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3181
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3182
    }/*function_dword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3183
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3184
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3185
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3186
 *DWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3187
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3188
    case function_dword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3189
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3190
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3191
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3192
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3193
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3194
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3195
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3196
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3197
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3198
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3199
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3200
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3201
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3202
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3203
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3204
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3205
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3206
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3207
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3208
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3209
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3210
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3211
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3212
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3213
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3214
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3215
    }/*function_dword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3216
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3217
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3218
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3219
 *DWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3220
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3221
    case function_dword_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3222
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3223
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3224
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3225
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3226
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3227
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3228
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3229
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3230
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3231
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3232
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3233
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3234
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3235
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3236
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3237
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3238
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3239
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3240
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3241
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3242
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3243
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3244
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3245
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3246
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3247
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3248
    }/*function_dword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3249
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3250
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3251
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3252
 *DWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3253
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3254
    case function_dword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3255
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3256
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3257
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3258
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3259
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3260
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3261
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3262
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3263
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3264
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3265
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3266
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3267
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3268
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3269
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3270
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3271
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3272
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3273
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3274
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3275
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3276
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3277
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3278
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3279
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3280
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3281
    }/*function_dword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3282
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3283
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3284
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3285
 *DWORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3286
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3287
    case function_dword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3288
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3289
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3290
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3291
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3292
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3293
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3294
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3295
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3296
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3297
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3298
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3299
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3300
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3301
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3302
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3303
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3304
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3305
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3306
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3307
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3308
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3309
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3310
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3311
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3312
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3313
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3314
    }/*function_dword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3315
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3316
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3317
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3318
 *DWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3319
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3320
    case function_dword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3321
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3322
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3323
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3324
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3325
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3326
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3327
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3329
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3330
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3331
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3332
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3333
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3334
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3335
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3336
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3337
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3338
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3339
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3340
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3341
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3342
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3343
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3344
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3345
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3346
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3347
    }/*function_dword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3348
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3349
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3350
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3351
 *DWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3352
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3353
    case function_dword_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3354
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3355
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3356
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3357
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3358
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3359
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3360
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3361
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3362
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3363
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3364
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3365
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3366
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3367
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3368
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3369
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3370
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3371
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3372
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3373
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3374
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3375
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3376
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3377
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3378
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3379
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3380
    }/*function_dword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3381
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3382
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3383
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3384
 *DWORD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3385
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3386
    case function_dword_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3387
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3388
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3389
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3390
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3391
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3392
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3393
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3394
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3395
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3396
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3397
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3398
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3399
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3400
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3401
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3402
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3403
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3404
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3405
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3406
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3407
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3408
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3409
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3410
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3411
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3412
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3413
    }/*function_dword_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3414
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3415
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3416
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3417
 *DWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3418
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3419
    case function_dword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3420
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3421
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3422
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3423
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3424
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3425
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3426
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3427
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3428
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3429
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3430
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3431
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3432
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3433
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3434
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3435
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3436
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3437
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3438
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3439
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3440
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3441
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3442
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3443
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3444
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3445
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3446
    }/*function_dword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3447
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3448
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3449
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3450
 *DWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3451
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3452
    case function_dword_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3453
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3454
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3455
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3456
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3457
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3458
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3459
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3460
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3461
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3462
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3463
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3464
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3465
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3466
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3467
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3468
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3469
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3470
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3471
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3472
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3473
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3474
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3475
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3476
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3477
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3478
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3479
    }/*function_dword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3480
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3481
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3482
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3483
 *DWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3484
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3485
    case function_dword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3486
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3487
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3488
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3489
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3490
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3491
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3492
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3493
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3494
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3495
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3496
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3497
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3498
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3499
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3500
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3501
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3502
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3503
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3504
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3505
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3506
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3507
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3508
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3509
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3510
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3511
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3512
    }/*function_dword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3513
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3514
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3515
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3516
 *DWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3517
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3518
    case function_dword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3519
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3520
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3521
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3522
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3523
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3524
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3525
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3526
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3527
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3528
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3529
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3530
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3531
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3532
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3533
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3534
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3535
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3536
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3537
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3538
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3539
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3540
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3541
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3542
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3543
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3544
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3545
    }/*function_dword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3546
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3547
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3548
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3549
 *DWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3550
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3551
    case function_dword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3552
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3553
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3554
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3555
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3556
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3557
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3558
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3559
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3560
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3561
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3562
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3563
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3564
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3566
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3567
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3568
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3569
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3570
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3571
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3572
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3573
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3574
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3575
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3576
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3577
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3578
    }/*function_dword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3579
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3580
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3581
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3582
 *DWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3583
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3584
    case function_dword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3585
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3586
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3587
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3588
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3589
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3590
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3591
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3592
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3593
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3594
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3595
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3596
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3597
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3598
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3599
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3600
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3601
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3602
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3603
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3604
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3605
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3606
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3607
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3608
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3609
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3610
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3611
    }/*function_dword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3612
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3613
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3614
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3615
 *DWORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3616
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3617
    case function_dword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3618
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3619
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3620
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3621
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3622
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3623
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3624
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3625
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3626
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3627
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3628
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3629
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3630
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3631
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3632
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3633
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3634
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3635
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3636
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3637
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3638
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3639
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3640
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3641
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3642
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3643
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3644
    }/*function_dword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3645
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3646
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3647
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3648
 *DWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3649
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3650
    case function_dword_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3651
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3652
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3653
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3654
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3655
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3656
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3657
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3658
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3659
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3660
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3661
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3662
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3663
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3664
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3665
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3666
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3667
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3668
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3669
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3670
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3671
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3672
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3673
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3674
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3675
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3676
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3677
    }/*function_dword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3678
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3679
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3680
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3681
 *DT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3682
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3683
    case function_dt_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3684
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3685
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3686
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3687
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3688
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3689
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3690
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3692
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3693
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3694
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3695
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3696
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3697
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3698
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3699
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3700
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3701
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3702
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3703
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3704
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3705
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3706
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3707
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3708
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3709
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3710
    }/*function_dt_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3711
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3712
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3713
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3714
 *DT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3715
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3716
    case function_dt_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3717
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3718
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3719
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3720
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3721
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3722
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3723
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3724
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3725
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3726
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3727
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3728
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3729
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3730
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3731
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3732
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3733
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3734
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3735
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3736
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3737
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3738
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3739
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3740
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3741
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3742
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3743
    }/*function_dt_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3744
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3745
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3746
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3747
 *DT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3748
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3749
    case function_dt_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3750
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3751
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3752
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3753
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3754
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3755
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3756
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3757
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3758
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3759
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3760
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3761
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3762
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3763
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3764
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3765
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3766
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3767
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3768
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3769
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3770
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3771
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3772
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3773
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3774
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3775
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3776
    }/*function_dt_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3777
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3778
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3779
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3780
 *DT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3781
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3782
    case function_dt_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3783
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3784
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3785
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3786
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3787
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3788
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3789
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3790
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3791
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3792
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3793
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3794
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3795
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3796
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3797
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3798
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3799
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3800
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3801
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3802
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3803
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3804
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3805
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3806
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3807
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3808
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3809
    }/*function_dt_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3810
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3811
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3812
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3813
 *DT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3814
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3815
    case function_dt_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3816
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3817
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3818
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3819
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3820
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3821
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3822
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3823
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3824
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3825
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3826
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3827
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3828
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3829
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3830
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3831
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3832
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3833
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3834
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3835
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3836
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3837
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3838
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3839
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3840
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3841
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3842
    }/*function_dt_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3843
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3844
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3845
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3846
 *DT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3847
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3848
    case function_dt_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3849
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3850
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3851
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3852
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3853
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3854
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3855
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3856
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3857
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3858
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3859
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3860
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3861
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3862
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3863
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3864
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3865
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3866
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3867
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3868
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3869
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3870
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3871
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3872
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3873
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3874
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3875
    }/*function_dt_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3876
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3877
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3878
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3879
 *DT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3880
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3881
    case function_dt_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3882
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3883
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3884
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3885
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3886
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3887
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3888
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3889
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3890
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3891
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3892
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3893
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3894
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3895
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3896
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3897
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3898
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3899
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3900
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3901
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3902
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3903
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3904
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3905
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3906
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3907
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3908
    }/*function_dt_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3909
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3910
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3911
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3912
 *DT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3913
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3914
    case function_dt_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3915
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3916
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3917
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3918
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3919
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3920
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3921
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3922
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3923
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3924
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3925
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3926
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3927
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3928
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3929
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3930
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3931
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3932
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3933
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3934
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3935
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3936
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3937
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3938
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3939
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3940
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3941
    }/*function_dt_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3942
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3943
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3944
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3945
 *DT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3946
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3947
    case function_dt_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3948
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3949
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3950
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3951
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3952
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3953
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3954
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3955
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3956
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3957
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3958
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3959
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3960
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3961
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3962
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3963
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3964
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3965
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3966
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3967
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3968
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3969
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3970
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3971
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3972
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3973
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3974
    }/*function_dt_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3975
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3976
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3977
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3978
 *DT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3979
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3980
    case function_dt_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3981
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3982
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3983
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3984
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3985
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3986
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3987
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3988
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3989
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3990
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3991
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3992
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3993
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3994
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3995
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3996
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3997
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3998
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3999
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4000
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4001
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4002
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4003
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4004
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4005
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4006
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4007
    }/*function_dt_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4008
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4009
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4010
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4011
 *DT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4012
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4013
    case function_dt_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4014
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4015
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4016
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4017
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4018
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4019
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4020
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4021
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4022
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4023
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4024
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4025
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4026
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4027
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4028
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4029
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4030
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4031
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4032
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4033
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4034
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4035
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4036
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4037
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4038
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4039
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4040
    }/*function_dt_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4041
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4042
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4043
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4044
 *DT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4045
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4046
    case function_dt_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4047
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4048
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4049
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4050
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4051
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4052
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4053
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4054
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4055
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4056
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4057
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4058
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4059
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4060
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4061
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4062
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4063
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4064
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4065
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4066
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4067
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4068
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4069
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4070
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4071
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4072
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4073
    }/*function_dt_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4074
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4075
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4076
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4077
 *DT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4078
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4079
    case function_dt_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4080
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4081
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4082
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4083
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4084
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4085
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4086
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4087
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4088
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4089
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4090
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4091
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4092
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4093
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4094
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4095
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4096
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4097
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4098
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4099
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4100
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4101
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4102
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4103
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4104
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4105
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4106
    }/*function_dt_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4107
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4108
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4109
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4110
 *DT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4111
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4112
    case function_dt_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4113
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4114
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4115
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4116
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4117
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4118
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4119
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4121
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4122
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4123
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4124
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4125
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4126
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4127
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4128
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4129
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4130
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4131
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4132
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4133
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4134
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4135
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4136
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4137
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4138
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4139
    }/*function_dt_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4140
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4141
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4142
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4143
 *DT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4144
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4145
    case function_dt_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4146
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4147
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4148
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4149
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4150
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4151
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4152
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4153
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4154
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4155
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4156
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4157
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4158
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4160
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4161
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4162
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4163
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4164
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4165
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4166
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4167
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4168
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4169
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4170
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4171
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4172
    }/*function_dt_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4173
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4174
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4175
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4176
 *TOD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4177
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4178
    case function_tod_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4179
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4180
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4181
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4182
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4183
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4184
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4185
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4186
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4187
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4188
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4189
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4190
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4191
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4192
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4193
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4194
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4195
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4196
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4197
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4198
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4199
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4200
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4201
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4202
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4203
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4204
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4205
    }/*function_tod_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4206
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4207
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4208
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4209
 *TOD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4210
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4211
    case function_tod_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4212
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4213
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4214
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4215
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4216
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4217
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4218
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4219
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4220
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4221
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4222
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4223
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4224
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4225
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4226
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4227
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4228
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4229
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4230
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4231
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4232
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4234
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4235
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4236
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4237
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4238
    }/*function_tod_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4239
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4240
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4241
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4242
 *TOD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4243
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4244
    case function_tod_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4245
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4246
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4247
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4248
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4249
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4250
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4251
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4252
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4253
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4254
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4255
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4256
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4257
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4258
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4259
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4260
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4261
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4262
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4263
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4264
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4265
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4266
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4267
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4268
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4269
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4270
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4271
    }/*function_tod_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4272
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4273
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4274
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4275
 *TOD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4276
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4277
    case function_tod_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4278
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4279
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4280
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4281
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4282
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4283
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4284
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4286
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4287
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4288
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4289
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4290
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4291
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4292
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4293
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4294
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4295
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4296
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4297
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4298
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4299
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4300
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4301
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4302
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4303
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4304
    }/*function_tod_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4305
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4306
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4307
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4308
 *TOD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4309
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4310
    case function_tod_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4311
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4312
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4313
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4314
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4315
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4316
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4317
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4318
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4319
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4320
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4321
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4322
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4323
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4324
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4325
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4326
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4327
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4328
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4329
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4330
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4331
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4332
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4333
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4334
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4335
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4336
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4337
    }/*function_tod_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4338
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4339
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4340
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4341
 *TOD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4342
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4343
    case function_tod_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4344
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4345
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4346
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4347
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4348
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4349
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4350
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4351
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4352
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4353
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4354
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4355
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4356
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4357
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4358
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4359
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4360
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4361
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4362
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4363
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4364
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4365
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4366
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4367
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4368
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4369
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4370
    }/*function_tod_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4371
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4372
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4373
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4374
 *TOD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4375
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4376
    case function_tod_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4377
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4378
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4379
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4380
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4381
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4382
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4383
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4384
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4385
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4386
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4387
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4388
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4389
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4390
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4391
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4392
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4393
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4394
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4395
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4396
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4397
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4398
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4399
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4400
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4401
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4402
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4403
    }/*function_tod_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4404
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4405
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4406
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4407
 *TOD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4408
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4409
    case function_tod_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4410
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4411
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4412
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4413
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4414
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4415
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4416
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4417
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4418
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4419
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4420
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4421
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4422
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4423
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4424
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4425
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4426
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4427
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4428
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4429
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4430
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4431
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4432
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4433
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4434
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4435
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4436
    }/*function_tod_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4437
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4438
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4439
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4440
 *TOD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4441
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4442
    case function_tod_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4443
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4444
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4445
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4446
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4447
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4448
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4449
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4450
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4451
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4452
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4453
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4454
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4455
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4456
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4457
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4458
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4459
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4460
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4461
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4462
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4463
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4464
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4465
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4466
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4467
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4468
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4469
    }/*function_tod_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4470
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4471
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4472
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4473
 *TOD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4474
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4475
    case function_tod_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4476
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4477
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4478
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4479
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4480
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4481
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4482
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4483
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4484
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4485
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4486
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4487
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4488
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4489
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4490
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4491
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4492
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4493
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4494
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4495
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4496
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4497
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4498
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4499
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4500
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4501
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4502
    }/*function_tod_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4503
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4504
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4505
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4506
 *TOD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4507
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4508
    case function_tod_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4509
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4510
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4511
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4512
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4513
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4514
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4515
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4516
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4517
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4518
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4519
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4520
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4521
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4522
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4523
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4524
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4525
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4526
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4527
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4528
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4529
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4530
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4531
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4532
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4533
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4534
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4535
    }/*function_tod_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4536
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4537
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4538
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4539
 *TOD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4540
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4541
    case function_tod_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4542
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4543
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4544
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4545
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4546
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4547
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4548
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4549
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4550
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4551
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4552
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4553
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4554
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4555
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4556
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4557
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4558
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4559
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4560
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4561
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4562
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4563
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4564
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4565
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4566
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4567
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4568
    }/*function_tod_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4569
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4570
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4571
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4572
 *TOD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4573
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4574
    case function_tod_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4575
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4576
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4577
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4578
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4579
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4580
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4581
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4582
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4583
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4584
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4585
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4586
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4587
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4588
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4589
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4590
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4591
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4592
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4593
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4594
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4595
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4596
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4597
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4598
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4599
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4600
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4601
    }/*function_tod_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4602
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4603
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4604
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4605
 *TOD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4606
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4607
    case function_tod_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4608
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4609
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4610
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4611
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4612
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4613
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4614
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4615
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4616
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4617
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4618
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4619
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4620
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4621
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4622
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4623
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4624
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4625
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4626
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4627
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4628
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4629
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4630
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4631
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4632
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4633
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4634
    }/*function_tod_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4635
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4636
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4637
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4638
 *TOD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4639
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4640
    case function_tod_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4641
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4642
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4643
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4644
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4645
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4646
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4647
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4648
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4649
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4650
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4651
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4652
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4653
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4654
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4655
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4656
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4657
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4658
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4659
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4660
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4661
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4662
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4663
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4664
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4665
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4666
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4667
    }/*function_tod_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4668
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4669
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4670
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4671
 *UDINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4672
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4673
    case function_udint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4674
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4675
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4676
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4677
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4678
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4679
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4680
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4681
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4682
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4683
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4684
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4685
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4686
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4687
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4688
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4689
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4690
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4691
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4692
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4693
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4694
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4695
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4696
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4697
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4698
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4699
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4700
    }/*function_udint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4701
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4702
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4703
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4704
 *UDINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4705
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4706
    case function_udint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4707
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4708
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4709
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4710
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4711
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4712
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4713
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4714
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4715
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4716
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4717
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4718
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4719
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4720
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4721
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4722
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4723
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4724
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4725
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4726
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4727
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4728
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4729
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4730
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4731
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4732
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4733
    }/*function_udint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4734
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4735
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4736
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4737
 *UDINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4738
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4739
    case function_udint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4740
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4741
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4742
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4743
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4744
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4745
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4746
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4747
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4748
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4749
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4750
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4751
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4752
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4754
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4755
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4756
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4757
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4758
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4759
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4760
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4761
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4762
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4763
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4764
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4765
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4766
    }/*function_udint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4767
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4768
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4769
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4770
 *UDINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4771
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4772
    case function_udint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4773
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4774
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4775
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4776
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4777
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4778
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4779
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4780
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4781
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4782
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4783
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4784
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4785
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4786
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4787
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4788
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4789
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4790
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4791
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4792
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4793
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4794
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4795
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4796
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4797
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4798
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4799
    }/*function_udint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4800
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4801
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4802
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4803
 *UDINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4804
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4805
    case function_udint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4806
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4807
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4808
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4809
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4810
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4811
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4812
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4813
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4814
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4815
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4816
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4817
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4818
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4819
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4820
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4821
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4822
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4823
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4824
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4825
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4826
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4827
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4828
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4829
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4830
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4831
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4832
    }/*function_udint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4833
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4834
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4835
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4836
 *UDINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4837
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4838
    case function_udint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4839
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4840
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4841
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4842
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4843
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4844
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4845
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4846
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4847
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4848
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4849
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4850
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4851
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4852
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4853
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4854
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4855
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4856
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4857
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4858
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4859
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4860
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4861
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4862
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4863
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4864
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4865
    }/*function_udint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4866
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4867
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4868
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4869
 *UDINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4870
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4871
    case function_udint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4872
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4873
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4874
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4875
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4876
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4877
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4878
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4879
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4880
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4881
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4882
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4883
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4884
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4885
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4886
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4887
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4888
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4889
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4890
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4891
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4892
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4893
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4894
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4895
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4896
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4897
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4898
    }/*function_udint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4899
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4900
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4901
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4902
 *UDINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4903
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4904
    case function_udint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4905
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4906
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4907
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4908
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4909
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4910
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4911
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4912
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4913
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4914
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4915
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4916
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4917
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4918
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4919
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4920
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4921
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4922
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4923
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4924
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4925
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4926
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4927
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4928
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4929
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4930
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4931
    }/*function_udint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4932
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4933
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4934
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4935
 *UDINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4936
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4937
    case function_udint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4938
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4939
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4940
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4941
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4942
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4943
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4944
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4945
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4946
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4947
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4948
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4949
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4950
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4951
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4952
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4953
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4954
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4955
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4956
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4957
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4958
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4959
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4960
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4961
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4962
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4963
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4964
    }/*function_udint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4965
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4966
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4967
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4968
 *UDINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4969
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4970
    case function_udint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4971
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4972
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4973
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4974
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4975
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4976
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4977
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4978
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4979
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4980
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4981
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4982
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4983
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4984
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4985
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4986
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4987
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4988
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4989
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4990
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4991
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4992
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4993
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4994
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4995
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4996
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4997
    }/*function_udint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4998
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4999
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5000
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5001
 *UDINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5002
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5003
    case function_udint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5004
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5005
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5006
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5007
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5008
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5009
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5010
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5011
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5012
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5013
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5014
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5015
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5016
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5017
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5018
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5019
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5020
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5021
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5022
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5023
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5024
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5025
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5026
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5027
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5028
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5029
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5030
    }/*function_udint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5031
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5032
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5033
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5034
 *UDINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5035
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5036
    case function_udint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5037
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5038
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5039
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5040
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5041
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5042
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5043
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5044
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5045
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5046
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5047
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5048
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5049
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5050
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5051
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5052
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5053
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5054
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5055
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5056
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5057
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5058
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5059
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5060
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5061
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5062
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5063
    }/*function_udint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5064
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5065
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5066
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5067
 *UDINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5068
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5069
    case function_udint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5070
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5071
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5072
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5073
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5074
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5075
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5076
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5078
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5079
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5080
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5081
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5082
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5083
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5084
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5085
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5086
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5087
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5088
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5089
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5090
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5091
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5092
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5093
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5094
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5095
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5096
    }/*function_udint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5097
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5098
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5099
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5100
 *UDINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5101
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5102
    case function_udint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5103
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5104
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5105
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5106
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5107
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5108
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5109
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5110
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5111
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5112
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5113
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5114
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5115
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5116
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5117
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5118
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5119
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5120
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5121
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5122
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5123
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5124
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5125
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5126
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5127
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5128
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5129
    }/*function_udint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5130
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5131
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5132
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5133
 *UDINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5134
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5135
    case function_udint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5136
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5137
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5138
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5139
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5140
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5141
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5142
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5143
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5144
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5145
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5146
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5147
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5148
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5149
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5150
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5151
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5152
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5153
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5154
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5155
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5156
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5157
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5158
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5159
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5160
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5161
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5162
    }/*function_udint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5163
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5164
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5165
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5166
 *UDINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5167
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5168
    case function_udint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5169
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5170
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5171
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5172
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5173
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5174
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5175
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5176
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5177
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5178
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5179
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5180
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5181
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5182
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5183
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5184
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5185
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5186
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5187
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5188
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5189
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5190
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5191
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5192
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5193
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5194
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5195
    }/*function_udint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5196
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5197
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5198
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5199
 *UDINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5200
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5201
    case function_udint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5202
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5203
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5204
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5205
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5206
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5207
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5208
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5209
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5210
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5211
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5212
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5213
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5214
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5215
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5216
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5217
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5218
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5219
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5220
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5221
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5222
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5223
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5224
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5225
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5226
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5227
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5228
    }/*function_udint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5229
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5230
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5231
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5232
 *UDINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5233
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5234
    case function_udint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5235
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5236
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5237
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5238
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5239
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5240
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5241
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5242
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5243
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5244
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5245
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5246
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5247
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5248
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5249
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5250
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5251
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5252
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5253
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5254
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5255
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5256
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5257
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5258
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5259
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5260
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5261
    }/*function_udint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5262
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5263
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5264
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5265
 *UDINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5266
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5267
    case function_udint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5268
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5269
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5270
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5271
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5272
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5273
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5274
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5275
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5276
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5277
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5278
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5279
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5280
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5281
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5282
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5283
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5284
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5285
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5286
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5287
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5288
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5289
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5290
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5291
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5292
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5293
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5294
    }/*function_udint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5295
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5296
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5297
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5298
 *WORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5299
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5300
    case function_word_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5301
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5302
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5303
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5304
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5305
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5306
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5307
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5308
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5309
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5310
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5311
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5312
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5313
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5314
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5315
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5316
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5317
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5318
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5319
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5320
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5321
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5322
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5323
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5324
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5325
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5326
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5327
    }/*function_word_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5328
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5329
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5330
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5331
 *WORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5332
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5333
    case function_word_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5334
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5335
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5336
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5337
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5338
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5339
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5340
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5341
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5342
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5343
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5344
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5345
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5346
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5347
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5348
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5349
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5350
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5351
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5352
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5353
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5354
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5355
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5356
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5357
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5358
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5359
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5360
    }/*function_word_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5361
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5362
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5363
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5364
 *WORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5365
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5366
    case function_word_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5367
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5368
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5369
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5370
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5371
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5372
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5373
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5374
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5375
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5376
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5377
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5378
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5379
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5380
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5381
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5382
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5383
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5384
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5385
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5386
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5387
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5388
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5389
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5390
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5391
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5392
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5393
    }/*function_word_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5394
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5395
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5396
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5397
 *WORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5398
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5399
    case function_word_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5400
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5401
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5402
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5403
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5404
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5405
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5406
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5407
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5408
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5409
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5410
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5411
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5412
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5413
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5414
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5415
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5416
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5417
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5418
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5419
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5420
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5421
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5422
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5423
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5424
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5425
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5426
    }/*function_word_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5427
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5428
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5429
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5430
 *WORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5431
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5432
    case function_word_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5433
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5434
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5435
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5436
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5437
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5438
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5439
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5440
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5441
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5442
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5443
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5444
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5445
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5446
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5447
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5448
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5449
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5450
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5451
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5452
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5453
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5454
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5455
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5456
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5457
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5458
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5459
    }/*function_word_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5460
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5461
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5462
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5463
 *WORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5464
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5465
    case function_word_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5466
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5467
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5468
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5469
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5470
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5471
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5472
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5473
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5474
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5475
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5476
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5477
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5478
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5479
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5480
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5481
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5482
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5483
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5484
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5485
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5486
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5487
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5488
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5489
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5490
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5491
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5492
    }/*function_word_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5493
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5494
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5495
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5496
 *WORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5497
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5498
    case function_word_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5499
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5500
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5501
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5502
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5503
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5504
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5505
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5506
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5507
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5508
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5509
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5510
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5511
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5512
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5513
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5514
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5515
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5516
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5517
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5518
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5519
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5520
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5521
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5522
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5523
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5524
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5525
    }/*function_word_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5526
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5527
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5528
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5529
 *WORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5530
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5531
    case function_word_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5532
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5533
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5534
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5535
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5536
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5537
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5538
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5539
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5540
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5541
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5542
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5543
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5544
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5545
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5546
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5547
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5548
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5549
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5550
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5551
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5552
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5553
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5554
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5555
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5556
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5557
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5558
    }/*function_word_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5559
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5560
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5561
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5562
 *WORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5563
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5564
    case function_word_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5565
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5566
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5567
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5568
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5569
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5570
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5571
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5572
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5573
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5574
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5575
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5576
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5577
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5578
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5579
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5580
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5581
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5582
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5583
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5584
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5585
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5586
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5587
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5588
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5589
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5590
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5591
    }/*function_word_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5592
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5593
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5594
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5595
 *WORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5596
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5597
    case function_word_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5598
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5599
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5600
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5601
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5602
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5603
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5604
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5605
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5606
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5607
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5608
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5609
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5610
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5611
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5612
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5613
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5614
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5615
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5616
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5617
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5618
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5619
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5620
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5621
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5622
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5623
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5624
    }/*function_word_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5625
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5626
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5627
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5628
 *WORD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5629
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5630
    case function_word_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5631
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5632
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5633
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5634
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5635
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5636
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5637
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5638
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5639
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5640
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5641
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5642
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5643
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5644
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5645
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5646
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5647
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5648
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5649
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5650
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5651
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5652
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5653
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5654
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5655
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5656
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5657
    }/*function_word_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5658
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5659
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5660
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5661
 *WORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5662
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5663
    case function_word_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5664
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5665
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5666
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5667
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5668
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5669
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5670
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5671
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5672
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5673
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5674
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5675
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5676
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5677
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5678
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5679
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5680
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5681
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5682
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5683
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5684
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5685
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5686
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5687
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5688
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5689
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5690
    }/*function_word_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5691
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5692
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5693
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5694
 *WORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5695
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5696
    case function_word_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5697
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5698
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5699
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5700
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5701
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5702
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5703
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5704
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5705
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5706
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5707
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5708
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5709
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5710
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5711
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5712
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5713
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5714
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5715
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5716
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5717
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5718
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5719
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5720
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5721
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5722
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5723
    }/*function_word_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5724
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5725
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5726
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5727
 *WORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5728
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5729
    case function_word_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5730
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5731
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5732
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5733
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5734
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5735
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5736
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5737
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5738
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5739
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5740
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5741
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5742
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5743
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5744
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5745
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5746
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5747
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5748
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5749
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5750
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5751
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5752
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5753
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5754
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5755
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5756
    }/*function_word_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5757
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5758
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5759
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5760
 *WORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5761
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5762
    case function_word_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5763
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5764
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5765
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5766
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5767
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5768
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5769
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5770
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5771
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5772
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5773
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5774
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5775
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5776
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5777
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5778
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5779
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5780
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5781
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5782
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5783
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5784
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5785
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5786
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5787
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5788
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5789
    }/*function_word_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5790
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5791
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5792
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5793
 *WORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5794
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5795
    case function_word_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5796
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5797
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5798
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5799
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5800
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5801
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5802
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5803
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5804
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5805
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5806
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5807
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5808
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5809
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5810
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5811
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5812
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5813
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5814
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5815
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5816
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5817
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5818
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5819
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5820
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5821
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5822
    }/*function_word_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5823
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5824
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5825
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5826
 *WORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5827
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5828
    case function_word_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5829
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5830
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5831
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5832
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5833
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5834
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5835
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5836
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5837
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5838
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5839
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5840
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5841
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5842
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5843
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5844
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5845
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5846
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5847
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5848
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5849
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5850
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5851
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5852
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5853
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5854
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5855
    }/*function_word_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5856
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5857
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5858
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5859
 *WORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5860
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5861
    case function_word_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5862
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5863
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5864
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5865
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5866
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5867
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5868
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5869
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5870
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5871
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5872
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5873
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5874
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5875
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5876
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5877
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5878
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5879
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5880
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5881
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5882
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5883
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5884
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5885
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5886
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5888
    }/*function_word_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5889
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5890
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5891
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5892
 *WORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5893
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5894
    case function_word_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5895
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5896
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5897
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5898
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5899
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5900
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5901
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5902
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5903
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5904
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5905
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5906
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5907
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5908
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5909
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5910
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5911
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5912
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5913
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5914
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5915
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5916
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5917
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5918
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5919
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5920
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5921
    }/*function_word_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5922
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5923
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5924
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5925
 *STRING_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5926
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5927
    case function_string_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5928
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5929
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5930
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5931
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5932
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5933
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5934
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5935
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5936
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5937
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5938
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5939
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5940
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5941
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5942
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5943
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5944
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5945
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5946
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5947
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5948
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5949
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5950
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5951
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5952
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5953
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5954
    }/*function_string_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5955
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5956
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5957
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5958
 *STRING_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5959
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5960
    case function_string_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5961
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5962
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5963
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5964
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5965
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5966
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5967
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5968
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5969
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5970
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5971
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5972
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5973
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5974
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5975
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5976
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5977
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5978
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5979
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5980
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5981
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5982
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5983
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5984
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5985
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5986
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5987
    }/*function_string_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5988
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5989
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5990
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5991
 *STRING_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5992
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5993
    case function_string_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5994
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5995
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5996
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5997
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5998
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5999
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6000
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6001
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6002
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6003
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6004
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6005
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6006
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6007
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6008
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6009
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6010
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6011
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6012
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6013
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6014
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6015
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6016
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6017
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6018
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6019
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6020
    }/*function_string_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6021
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6022
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6023
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6024
 *STRING_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6025
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6026
    case function_string_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6027
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6028
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6029
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6030
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6031
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6032
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6033
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6034
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6035
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6036
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6037
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6038
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6039
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6040
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6041
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6042
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6043
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6044
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6045
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6046
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6047
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6048
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6049
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6050
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6051
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6052
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6053
    }/*function_string_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6054
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6055
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6056
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6057
 *STRING_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6058
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6059
    case function_string_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6060
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6061
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6062
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6063
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6064
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6065
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6066
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6067
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6068
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6069
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6070
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6071
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6072
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6073
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6074
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6075
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6076
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6077
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6078
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6079
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6080
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6081
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6082
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6083
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6084
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6085
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6086
    }/*function_string_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6087
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6088
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6089
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6090
 *STRING_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6091
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6092
    case function_string_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6093
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6094
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6095
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6096
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6097
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6098
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6099
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6100
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6101
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6102
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6103
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6104
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6105
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6106
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6107
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6108
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6109
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6110
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6111
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6112
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6113
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6114
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6115
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6116
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6117
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6118
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6119
    }/*function_string_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6120
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6121
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6122
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6123
 *STRING_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6124
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6125
    case function_string_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6126
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6127
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6128
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6129
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6130
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6131
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6132
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6133
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6134
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6135
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6136
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6137
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6138
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6139
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6140
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6141
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6142
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6143
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6144
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6145
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6146
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6147
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6148
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6149
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6150
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6151
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6152
    }/*function_string_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6153
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6154
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6155
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6156
 *STRING_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6157
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6158
    case function_string_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6159
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6160
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6161
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6162
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6163
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6164
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6165
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6166
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6167
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6168
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6169
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6170
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6171
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6172
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6173
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6174
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6175
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6176
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6177
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6178
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6179
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6180
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6181
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6182
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6183
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6184
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6185
    }/*function_string_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6186
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6187
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6188
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6189
 *STRING_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6190
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6191
    case function_string_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6192
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6193
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6194
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6195
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6196
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6197
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6198
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6199
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6200
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6201
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6202
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6203
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6204
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6205
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6206
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6207
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6208
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6209
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6210
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6211
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6212
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6213
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6214
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6215
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6216
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6217
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6218
    }/*function_string_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6219
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6220
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6221
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6222
 *STRING_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6223
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6224
    case function_string_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6225
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6226
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6227
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6228
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6229
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6230
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6231
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6232
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6233
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6234
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6235
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6236
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6237
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6238
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6239
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6240
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6241
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6242
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6243
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6244
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6245
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6246
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6247
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6248
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6249
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6250
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6251
    }/*function_string_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6252
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6253
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6254
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6255
 *STRING_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6256
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6257
    case function_string_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6258
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6259
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6260
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6261
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6262
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6263
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6264
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6265
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6266
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6267
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6268
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6269
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6270
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6271
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6272
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6273
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6274
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6275
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6276
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6277
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6278
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6279
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6280
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6281
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6282
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6283
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6284
    }/*function_string_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6285
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6286
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6287
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6288
 *STRING_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6289
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6290
    case function_string_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6291
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6292
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6293
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6294
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6295
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6296
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6297
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6298
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6299
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6300
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6301
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6302
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6303
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6304
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6305
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6306
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6307
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6308
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6309
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6310
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6311
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6312
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6313
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6314
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6315
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6316
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6317
    }/*function_string_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6318
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6319
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6320
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6321
 *STRING_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6322
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6323
    case function_string_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6324
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6325
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6326
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6327
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6328
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6329
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6330
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6331
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6332
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6333
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6334
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6335
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6336
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6337
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6338
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6339
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6340
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6341
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6342
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6343
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6344
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6345
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6346
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6347
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6348
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6349
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6350
    }/*function_string_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6351
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6352
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6353
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6354
 *STRING_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6355
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6356
    case function_string_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6357
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6358
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6359
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6360
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6361
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6362
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6363
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6364
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6365
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6366
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6367
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6368
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6369
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6370
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6371
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6372
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6373
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6374
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6375
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6376
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6377
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6378
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6379
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6380
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6381
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6382
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6383
    }/*function_string_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6384
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6385
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6386
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6387
 *STRING_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6388
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6389
    case function_string_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6390
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6391
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6392
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6393
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6394
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6395
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6396
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6397
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6398
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6399
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6400
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6401
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6402
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6403
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6404
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6405
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6406
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6407
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6408
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6409
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6410
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6411
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6412
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6413
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6414
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6415
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6416
    }/*function_string_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6417
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6418
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6419
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6420
 *STRING_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6421
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6422
    case function_string_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6423
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6424
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6425
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6426
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6427
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6428
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6429
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6430
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6431
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6432
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6433
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6434
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6435
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6436
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6437
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6438
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6439
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6440
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6441
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6442
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6443
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6444
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6445
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6446
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6447
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6448
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6449
    }/*function_string_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6450
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6451
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6452
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6453
 *STRING_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6454
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6455
    case function_string_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6456
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6457
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6458
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6459
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6460
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6461
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6462
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6463
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6464
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6465
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6466
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6467
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6468
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6469
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6470
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6471
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6472
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6473
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6474
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6475
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6476
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6477
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6478
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6479
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6480
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6481
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6482
    }/*function_string_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6483
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6484
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6485
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6486
 *STRING_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6487
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6488
    case function_string_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6489
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6490
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6491
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6492
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6493
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6494
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6495
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6496
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6497
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6498
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6499
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6500
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6501
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6502
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6503
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6504
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6505
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6506
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6507
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6508
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6509
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6510
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6511
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6512
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6513
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6514
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6515
    }/*function_string_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6516
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6517
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6518
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6519
 *STRING_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6520
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6521
    case function_string_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6522
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6523
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6524
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6525
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6526
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6527
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6528
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6529
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6530
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6531
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6532
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6533
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6534
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6535
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6536
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6537
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6538
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6539
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6540
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6541
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6542
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6543
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6544
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6545
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6546
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6547
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6548
    }/*function_string_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6549
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6550
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6551
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6552
 *LWORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6553
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6554
    case function_lword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6555
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6556
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6557
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6558
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6559
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6560
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6561
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6562
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6563
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6564
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6565
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6566
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6567
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6568
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6569
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6570
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6571
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6572
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6573
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6574
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6575
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6576
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6577
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6578
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6579
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6580
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6581
    }/*function_lword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6582
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6583
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6584
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6585
 *LWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6586
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6587
    case function_lword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6588
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6589
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6590
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6591
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6592
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6593
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6594
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6595
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6596
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6597
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6598
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6599
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6600
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6601
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6602
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6603
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6604
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6605
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6606
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6607
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6608
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6610
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6611
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6612
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6613
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6614
    }/*function_lword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6615
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6616
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6617
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6618
 *LWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6619
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6620
    case function_lword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6621
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6622
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6623
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6624
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6625
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6626
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6627
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6628
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6629
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6630
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6631
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6632
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6633
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6634
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6635
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6636
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6637
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6638
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6639
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6640
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6641
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6642
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6643
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6644
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6645
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6646
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6647
    }/*function_lword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6648
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6649
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6650
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6651
 *LWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6652
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6653
    case function_lword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6654
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6655
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6656
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6657
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6658
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6659
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6660
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6661
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6662
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6663
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6664
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6665
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6666
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6667
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6668
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6669
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6670
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6671
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6672
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6673
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6674
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6675
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6676
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6677
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6678
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6679
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6680
    }/*function_lword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6681
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6682
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6683
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6684
 *LWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6685
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6686
    case function_lword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6687
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6688
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6689
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6690
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6691
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6692
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6693
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6694
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6695
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6696
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6697
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6698
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6699
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6700
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6701
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6702
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6703
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6704
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6705
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6706
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6707
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6708
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6709
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6710
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6711
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6712
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6713
    }/*function_lword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6714
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6715
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6716
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6717
 *LWORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6718
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6719
    case function_lword_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6720
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6721
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6722
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6723
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6724
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6725
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6726
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6727
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6728
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6729
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6730
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6731
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6732
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6733
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6734
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6735
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6736
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6737
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6738
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6739
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6740
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6741
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6742
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6743
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6744
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6745
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6746
    }/*function_lword_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6747
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6748
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6749
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6750
 *LWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6751
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6752
    case function_lword_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6753
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6754
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6755
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6756
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6757
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6758
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6759
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6760
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6761
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6762
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6763
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6764
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6765
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6766
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6767
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6768
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6769
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6770
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6771
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6772
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6773
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6774
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6775
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6776
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6777
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6778
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6779
    }/*function_lword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6780
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6781
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6782
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6783
 *LWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6784
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6785
    case function_lword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6786
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6787
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6788
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6789
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6790
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6791
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6792
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6793
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6794
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6795
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6796
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6797
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6798
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6799
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6800
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6801
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6802
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6803
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6804
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6805
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6806
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6807
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6808
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6809
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6810
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6811
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6812
    }/*function_lword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6813
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6814
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6815
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6816
 *LWORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6817
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6818
    case function_lword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6819
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6820
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6821
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6822
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6823
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6824
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6825
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6826
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6827
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6828
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6829
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6830
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6831
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6832
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6833
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6834
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6835
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6836
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6837
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6838
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6839
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6840
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6841
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6842
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6843
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6844
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6845
    }/*function_lword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6846
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6847
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6848
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6849
 *LWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6850
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6851
    case function_lword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6852
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6853
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6854
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6855
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6856
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6857
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6858
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6860
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6861
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6862
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6863
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6864
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6865
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6866
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6867
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6868
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6869
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6870
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6871
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6872
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6873
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6874
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6875
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6876
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6877
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6878
    }/*function_lword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6879
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6880
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6881
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6882
 *LWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6883
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6884
    case function_lword_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6885
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6886
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6887
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6888
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6889
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6890
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6891
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6892
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6893
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6894
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6895
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6896
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6897
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6898
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6899
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6900
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6901
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6902
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6903
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6904
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6905
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6906
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6907
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6908
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6909
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6910
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6911
    }/*function_lword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6912
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6913
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6914
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6915
 *LWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6916
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6917
    case function_lword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6918
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6919
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6920
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6921
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6922
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6923
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6924
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6925
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6926
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6927
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6928
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6929
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6930
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6931
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6932
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6933
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6934
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6935
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6936
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6937
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6938
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6939
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6940
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6941
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6942
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6943
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6944
    }/*function_lword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6945
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6946
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6947
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6948
 *LWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6949
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6950
    case function_lword_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6951
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6952
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6953
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6954
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6955
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6956
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6957
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6958
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6959
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6960
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6961
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6962
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6963
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6964
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6965
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6966
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6967
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6968
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6969
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6970
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6971
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6972
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6973
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6974
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6975
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6976
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6977
    }/*function_lword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6978
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6979
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6980
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6981
 *LWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6982
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6983
    case function_lword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6984
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6985
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6986
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6987
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6988
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6989
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6990
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6991
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6992
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6993
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6994
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6995
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6996
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6997
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6998
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6999
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7000
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7001
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7002
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7003
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7004
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7005
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7006
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7007
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7008
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7009
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7010
    }/*function_lword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7011
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7012
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7013
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7014
 *LWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7015
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7016
    case function_lword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7017
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7018
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7019
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7020
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7021
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7022
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7023
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7024
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7025
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7026
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7027
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7028
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7029
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7030
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7031
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7032
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7033
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7034
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7035
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7036
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7037
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7038
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7039
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7040
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7041
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7042
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7043
    }/*function_lword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7044
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7045
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7046
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7047
 *LWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7048
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7049
    case function_lword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7050
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7051
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7052
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7053
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7054
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7055
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7056
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7057
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7058
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7059
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7060
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7061
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7062
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7063
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7064
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7065
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7066
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7067
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7068
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7069
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7070
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7071
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7072
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7073
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7074
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7075
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7076
    }/*function_lword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7077
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7078
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7079
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7080
 *LWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7081
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7082
    case function_lword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7083
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7084
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7085
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7086
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7087
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7088
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7089
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7090
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7091
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7092
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7093
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7094
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7095
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7096
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7097
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7098
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7099
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7100
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7101
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7102
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7103
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7104
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7105
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7106
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7107
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7108
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7109
    }/*function_lword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7110
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7111
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7112
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7113
 *LWORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7114
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7115
    case function_lword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7116
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7117
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7118
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7119
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7120
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7121
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7122
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7123
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7124
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7125
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7126
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7127
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7128
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7129
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7130
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7131
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7132
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7133
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7134
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7135
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7136
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7137
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7138
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7139
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7140
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7141
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7142
    }/*function_lword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7143
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7144
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7145
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7146
 *LWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7147
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7148
    case function_lword_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7149
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7150
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7151
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7152
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7153
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7154
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7155
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7156
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7157
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7158
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7159
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7160
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7161
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7162
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7163
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7164
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7165
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7166
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7167
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7168
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7169
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7170
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7171
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7172
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7173
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7174
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7175
    }/*function_lword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7176
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7177
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7178
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7179
 *UINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7180
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7181
    case function_uint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7182
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7183
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7184
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7185
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7186
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7187
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7188
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7189
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7190
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7191
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7192
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7193
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7194
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7195
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7196
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7197
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7198
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7199
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7200
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7201
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7202
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7203
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7204
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7205
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7206
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7207
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7208
    }/*function_uint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7209
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7210
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7211
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7212
 *UINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7213
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7214
    case function_uint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7215
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7216
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7217
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7218
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7219
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7220
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7221
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7222
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7223
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7224
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7225
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7226
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7227
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7228
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7229
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7230
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7231
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7232
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7233
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7234
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7235
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7236
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7237
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7238
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7239
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7240
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7241
    }/*function_uint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7242
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7243
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7244
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7245
 *UINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7246
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7247
    case function_uint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7248
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7249
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7250
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7251
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7252
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7253
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7254
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7255
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7256
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7257
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7258
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7259
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7260
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7261
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7262
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7263
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7264
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7265
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7266
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7267
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7268
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7269
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7270
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7271
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7272
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7273
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7274
    }/*function_uint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7275
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7276
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7277
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7278
 *UINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7279
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7280
    case function_uint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7281
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7282
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7283
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7284
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7285
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7286
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7287
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7288
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7289
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7290
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7291
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7292
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7293
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7294
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7295
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7296
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7297
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7298
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7299
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7300
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7301
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7302
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7303
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7304
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7305
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7306
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7307
    }/*function_uint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7308
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7310
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7311
 *UINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7312
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7313
    case function_uint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7314
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7315
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7316
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7317
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7318
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7319
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7320
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7321
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7322
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7323
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7324
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7325
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7326
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7327
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7328
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7329
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7330
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7331
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7332
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7333
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7334
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7335
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7336
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7337
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7338
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7339
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7340
    }/*function_uint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7341
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7342
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7343
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7344
 *UINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7345
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7346
    case function_uint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7347
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7348
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7349
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7350
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7351
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7352
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7353
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7354
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7355
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7356
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7357
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7358
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7359
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7360
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7361
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7362
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7363
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7364
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7365
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7366
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7367
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7368
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7369
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7370
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7371
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7372
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7373
    }/*function_uint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7374
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7375
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7376
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7377
 *UINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7378
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7379
    case function_uint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7380
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7381
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7382
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7383
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7384
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7385
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7386
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7387
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7388
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7389
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7390
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7391
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7392
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7393
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7394
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7395
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7396
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7397
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7398
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7399
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7400
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7401
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7402
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7403
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7404
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7405
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7406
    }/*function_uint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7407
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7408
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7409
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7410
 *UINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7411
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7412
    case function_uint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7413
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7414
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7415
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7416
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7417
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7418
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7419
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7420
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7421
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7422
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7423
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7424
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7425
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7426
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7427
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7428
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7429
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7430
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7431
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7432
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7433
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7434
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7435
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7436
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7437
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7438
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7439
    }/*function_uint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7440
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7441
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7442
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7443
 *UINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7444
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7445
    case function_uint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7446
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7447
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7448
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7449
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7450
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7451
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7452
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7454
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7455
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7456
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7457
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7458
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7459
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7460
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7461
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7462
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7463
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7464
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7465
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7466
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7467
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7468
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7469
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7470
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7471
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7472
    }/*function_uint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7473
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7474
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7475
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7476
 *UINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7477
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7478
    case function_uint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7479
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7480
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7481
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7482
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7483
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7484
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7485
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7486
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7487
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7488
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7489
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7490
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7491
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7492
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7493
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7494
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7495
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7496
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7497
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7498
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7499
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7500
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7501
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7502
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7503
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7504
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7505
    }/*function_uint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7506
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7507
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7508
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7509
 *UINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7510
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7511
    case function_uint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7512
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7513
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7514
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7515
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7516
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7517
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7518
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7519
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7520
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7521
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7522
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7523
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7524
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7525
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7526
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7527
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7528
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7529
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7530
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7531
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7532
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7533
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7534
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7535
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7536
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7537
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7538
    }/*function_uint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7539
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7540
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7541
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7542
 *UINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7543
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7544
    case function_uint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7545
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7546
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7547
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7548
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7549
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7550
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7551
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7552
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7553
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7554
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7555
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7556
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7557
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7558
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7559
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7560
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7561
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7562
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7563
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7564
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7565
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7566
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7567
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7568
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7569
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7570
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7571
    }/*function_uint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7572
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7573
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7574
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7575
 *UINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7576
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7577
    case function_uint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7578
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7579
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7580
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7581
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7582
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7583
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7584
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7585
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7586
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7587
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7588
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7589
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7590
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7591
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7592
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7593
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7594
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7595
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7596
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7597
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7598
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7599
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7600
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7601
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7602
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7603
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7604
    }/*function_uint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7605
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7606
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7607
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7608
 *UINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7609
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7610
    case function_uint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7611
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7612
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7613
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7614
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7615
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7616
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7617
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7618
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7619
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7620
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7621
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7622
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7623
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7624
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7625
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7626
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7627
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7628
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7629
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7630
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7631
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7632
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7633
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7634
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7635
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7636
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7637
    }/*function_uint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7638
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7639
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7640
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7641
 *UINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7642
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7643
    case function_uint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7644
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7645
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7646
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7647
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7648
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7649
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7650
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7651
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7652
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7653
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7654
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7655
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7656
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7657
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7658
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7659
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7660
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7661
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7662
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7663
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7664
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7665
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7666
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7667
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7668
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7669
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7670
    }/*function_uint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7671
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7672
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7673
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7674
 *UINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7675
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7676
    case function_uint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7677
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7678
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7679
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7680
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7681
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7682
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7683
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7684
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7685
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7686
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7687
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7688
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7689
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7690
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7691
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7692
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7693
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7694
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7695
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7696
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7697
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7698
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7699
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7700
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7701
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7702
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7703
    }/*function_uint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7704
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7705
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7706
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7707
 *UINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7708
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7709
    case function_uint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7710
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7711
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7712
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7713
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7714
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7715
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7716
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7717
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7718
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7719
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7720
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7721
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7722
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7723
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7724
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7725
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7726
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7727
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7728
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7729
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7730
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7731
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7732
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7733
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7734
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7735
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7736
    }/*function_uint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7737
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7738
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7739
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7740
 *UINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7741
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7742
    case function_uint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7743
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7744
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7745
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7746
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7747
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7748
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7749
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7750
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7751
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7752
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7753
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7754
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7755
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7756
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7757
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7758
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7759
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7760
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7761
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7762
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7763
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7764
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7766
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7767
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7769
    }/*function_uint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7770
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7771
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7772
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7773
 *UINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7774
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7775
    case function_uint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7776
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7777
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7778
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7779
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7780
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7781
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7782
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7783
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7784
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7785
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7786
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7787
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7788
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7789
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7790
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7791
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7792
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7793
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7794
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7795
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7796
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7797
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7798
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7799
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7800
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7801
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7802
    }/*function_uint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7803
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7804
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7805
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7806
 *LREAL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7807
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7808
    case function_lreal_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7809
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7810
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7811
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7812
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7813
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7814
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7815
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7816
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7817
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7818
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7819
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7820
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7821
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7822
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7823
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7824
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7825
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7826
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7827
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7828
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7829
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7830
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7831
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7832
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7833
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7834
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7835
    }/*function_lreal_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7836
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7837
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7838
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7839
 *LREAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7840
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7841
    case function_lreal_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7842
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7843
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7844
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7845
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7846
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7847
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7848
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7849
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7850
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7851
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7852
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7853
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7854
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7855
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7856
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7857
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7858
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7859
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7860
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7861
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7862
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7863
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7864
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7865
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7866
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7867
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7868
    }/*function_lreal_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7869
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7870
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7871
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7872
 *LREAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7873
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7874
    case function_lreal_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7875
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7876
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7877
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7878
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7879
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7880
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7881
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7882
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7883
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7884
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7885
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7886
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7887
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7888
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7889
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7890
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7891
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7892
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7893
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7894
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7895
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7896
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7897
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7898
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7899
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7900
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7901
    }/*function_lreal_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7902
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7903
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7904
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7905
 *LREAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7906
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7907
    case function_lreal_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7908
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7909
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7910
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7911
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7912
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7913
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7914
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7915
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7916
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7917
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7918
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7919
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7920
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7921
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7922
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7923
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7924
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7925
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7926
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7927
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7928
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7929
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7930
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7931
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7932
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7933
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7934
    }/*function_lreal_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7935
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7936
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7937
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7938
 *LREAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7939
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7940
    case function_lreal_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7941
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7942
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7943
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7944
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7945
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7946
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7947
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7948
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7949
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7950
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7951
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7952
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7953
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7954
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7955
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7956
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7957
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7958
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7959
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7960
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7961
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7962
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7963
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7964
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7965
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7966
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7967
    }/*function_lreal_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7968
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7969
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7970
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7971
 *LREAL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7972
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7973
    case function_lreal_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7974
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7975
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7976
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7977
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7978
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7979
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7980
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7982
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7983
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7984
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7985
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7986
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7987
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7988
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7989
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7990
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7991
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7992
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7993
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7994
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7995
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7996
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7997
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7998
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7999
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8000
    }/*function_lreal_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8001
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8002
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8003
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8004
 *LREAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8005
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8006
    case function_lreal_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8007
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8008
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8009
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8010
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8011
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8012
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8013
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8014
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8015
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8016
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8017
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8018
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8019
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8020
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8021
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8022
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8023
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8024
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8025
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8026
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8027
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8028
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8029
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8030
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8031
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8032
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8033
    }/*function_lreal_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8034
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8035
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8036
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8037
 *LREAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8038
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8039
    case function_lreal_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8040
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8041
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8042
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8043
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8044
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8045
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8046
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8047
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8048
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8049
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8050
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8051
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8052
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8053
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8054
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8055
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8056
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8057
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8058
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8059
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8060
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8061
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8062
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8063
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8064
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8065
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8066
    }/*function_lreal_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8067
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8068
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8069
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8070
 *LREAL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8071
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8072
    case function_lreal_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8073
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8074
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8075
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8076
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8077
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8078
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8079
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8080
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8081
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8082
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8083
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8084
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8085
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8086
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8087
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8088
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8089
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8090
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8091
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8092
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8093
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8094
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8095
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8096
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8097
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8098
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8099
    }/*function_lreal_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8100
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8101
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8102
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8103
 *LREAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8104
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8105
    case function_lreal_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8106
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8107
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8108
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8109
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8110
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8111
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8112
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8113
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8114
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8115
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8116
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8117
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8118
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8120
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8121
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8122
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8123
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8124
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8125
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8126
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8127
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8128
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8129
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8130
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8131
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8132
    }/*function_lreal_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8133
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8134
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8135
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8136
 *LREAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8137
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8138
    case function_lreal_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8139
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8140
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8141
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8142
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8143
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8144
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8145
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8146
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8147
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8148
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8149
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8150
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8151
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8152
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8153
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8154
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8155
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8156
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8157
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8158
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8159
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8160
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8161
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8162
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8163
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8164
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8165
    }/*function_lreal_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8166
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8167
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8168
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8169
 *LREAL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8170
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8171
    case function_lreal_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8172
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8173
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8174
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8175
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8176
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8177
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8178
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8179
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8180
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8181
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8182
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8183
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8184
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8185
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8186
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8187
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8188
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8189
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8190
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8191
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8192
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8193
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8194
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8195
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8196
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8197
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8198
    }/*function_lreal_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8199
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8200
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8201
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8202
 *LREAL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8203
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8204
    case function_lreal_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8205
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8206
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8207
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8208
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8209
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8210
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8211
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8212
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8213
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8214
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8215
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8216
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8217
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8218
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8219
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8220
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8221
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8222
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8223
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8224
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8225
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8226
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8228
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8229
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8230
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8231
    }/*function_lreal_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8232
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8234
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8235
 *LREAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8236
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8237
    case function_lreal_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8238
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8239
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8240
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8241
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8242
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8243
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8244
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8245
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8246
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8247
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8248
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8249
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8250
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8251
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8252
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8253
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8254
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8255
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8256
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8257
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8258
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8259
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8260
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8261
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8262
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8263
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8264
    }/*function_lreal_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8265
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8266
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8267
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8268
 *LREAL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8269
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8270
    case function_lreal_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8271
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8272
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8273
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8274
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8275
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8276
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8277
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8278
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8279
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8280
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8281
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8282
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8283
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8284
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8285
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8286
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8287
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8288
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8289
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8290
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8291
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8292
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8293
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8294
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8295
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8296
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8297
    }/*function_lreal_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8298
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8299
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8300
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8301
 *LREAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8302
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8303
    case function_lreal_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8304
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8305
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8306
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8307
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8308
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8309
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8310
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8311
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8312
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8313
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8314
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8315
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8316
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8317
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8318
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8319
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8320
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8321
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8322
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8323
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8324
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8325
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8326
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8327
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8328
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8329
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8330
    }/*function_lreal_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8331
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8332
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8333
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8334
 *LREAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8335
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8336
    case function_lreal_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8337
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8338
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8339
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8340
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8341
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8342
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8343
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8344
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8345
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8346
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8347
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8348
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8349
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8350
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8351
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8352
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8353
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8354
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8355
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8356
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8357
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8358
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8359
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8360
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8361
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8362
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8363
    }/*function_lreal_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8364
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8365
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8366
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8367
 *LREAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8368
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8369
    case function_lreal_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8370
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8371
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8372
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8373
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8374
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8375
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8376
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8377
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8378
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8379
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8380
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8381
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8382
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8383
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8384
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8385
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8386
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8387
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8388
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8389
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8390
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8391
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8392
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8393
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8394
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8395
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8396
    }/*function_lreal_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8397
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8398
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8399
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8400
 *LREAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8401
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8402
    case function_lreal_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8403
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8404
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8405
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8406
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8407
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8408
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8409
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8410
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8411
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8412
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8413
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8414
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8415
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8416
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8417
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8418
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8419
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8420
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8421
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8422
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8423
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8424
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8425
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8426
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8427
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8428
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8429
    }/*function_lreal_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8430
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8431
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8432
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8433
 *BYTE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8434
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8435
    case function_byte_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8436
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8437
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8438
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8439
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8440
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8441
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8442
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8443
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8444
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8445
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8446
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8447
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8448
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8449
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8450
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8451
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8452
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8453
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8454
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8455
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8456
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8457
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8458
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8459
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8460
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8461
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8462
    }/*function_byte_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8463
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8464
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8465
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8466
 *BYTE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8467
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8468
    case function_byte_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8469
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8470
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8471
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8472
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8473
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8474
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8475
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8476
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8477
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8478
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8479
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8480
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8481
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8482
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8483
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8484
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8485
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8486
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8487
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8488
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8489
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8490
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8491
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8492
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8493
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8494
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8495
    }/*function_byte_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8496
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8497
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8498
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8499
 *BYTE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8500
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8501
    case function_byte_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8502
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8503
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8504
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8505
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8506
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8507
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8508
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8509
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8510
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8511
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8512
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8513
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8514
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8515
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8516
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8517
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8518
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8519
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8520
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8521
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8522
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8523
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8524
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8525
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8526
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8527
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8528
    }/*function_byte_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8529
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8530
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8531
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8532
 *BYTE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8533
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8534
    case function_byte_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8535
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8536
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8537
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8538
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8539
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8540
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8541
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8542
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8543
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8544
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8545
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8546
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8547
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8548
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8549
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8550
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8551
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8552
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8553
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8554
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8555
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8556
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8557
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8558
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8559
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8560
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8561
    }/*function_byte_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8562
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8563
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8564
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8565
 *BYTE_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8566
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8567
    case function_byte_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8568
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8569
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8570
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8571
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8572
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8573
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8574
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8575
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8576
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8577
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8578
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8579
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8580
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8581
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8582
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8583
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8584
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8585
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8586
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8587
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8588
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8589
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8590
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8591
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8592
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8593
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8594
    }/*function_byte_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8595
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8596
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8597
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8598
 *BYTE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8599
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8600
    case function_byte_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8601
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8602
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8603
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8604
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8605
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8606
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8607
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8608
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8609
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8610
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8611
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8612
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8613
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8614
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8615
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8616
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8617
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8618
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8619
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8620
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8621
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8622
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8623
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8624
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8625
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8626
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8627
    }/*function_byte_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8628
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8629
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8630
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8631
 *BYTE_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8632
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8633
    case function_byte_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8634
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8635
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8636
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8637
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8638
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8639
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8640
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8641
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8642
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8643
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8644
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8645
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8646
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8647
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8648
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8649
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8650
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8651
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8652
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8653
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8654
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8655
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8656
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8657
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8658
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8659
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8660
    }/*function_byte_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8661
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8662
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8663
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8664
 *BYTE_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8665
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8666
    case function_byte_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8667
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8668
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8669
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8670
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8671
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8672
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8673
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8674
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8675
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8676
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8677
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8678
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8679
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8680
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8681
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8682
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8683
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8684
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8685
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8686
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8687
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8688
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8689
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8690
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8691
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8692
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8693
    }/*function_byte_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8694
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8695
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8696
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8697
 *BYTE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8698
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8699
    case function_byte_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8700
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8701
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8702
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8703
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8704
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8705
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8706
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8707
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8708
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8709
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8710
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8711
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8712
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8713
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8714
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8715
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8716
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8717
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8718
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8719
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8720
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8721
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8722
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8723
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8724
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8725
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8726
    }/*function_byte_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8727
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8728
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8729
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8730
 *BYTE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8731
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8732
    case function_byte_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8733
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8734
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8735
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8736
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8737
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8738
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8739
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8740
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8741
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8742
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8743
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8744
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8745
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8746
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8747
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8748
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8749
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8750
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8751
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8752
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8753
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8754
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8755
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8756
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8757
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8758
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8759
    }/*function_byte_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8760
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8761
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8762
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8763
 *BYTE_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8764
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8765
    case function_byte_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8766
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8767
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8768
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8769
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8770
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8771
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8772
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8773
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8774
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8775
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8776
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8777
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8778
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8779
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8780
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8781
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8782
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8783
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8784
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8785
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8786
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8787
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8788
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8789
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8790
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8791
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8792
    }/*function_byte_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8793
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8794
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8795
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8796
 *BYTE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8797
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8798
    case function_byte_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8799
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8800
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8801
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8802
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8803
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8804
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8805
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8806
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8807
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8808
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8809
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8810
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8811
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8812
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8813
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8814
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8815
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8816
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8817
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8818
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8819
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8820
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8821
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8822
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8823
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8824
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8825
    }/*function_byte_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8826
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8827
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8828
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8829
 *BYTE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8830
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8831
    case function_byte_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8832
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8833
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8834
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8835
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8836
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8837
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8838
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8839
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8840
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8841
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8842
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8843
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8844
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8845
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8846
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8847
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8848
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8849
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8850
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8851
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8852
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8853
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8854
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8855
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8856
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8857
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8858
    }/*function_byte_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8859
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8860
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8861
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8862
 *BYTE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8863
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8864
    case function_byte_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8865
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8866
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8867
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8868
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8869
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8870
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8871
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8872
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8873
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8874
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8875
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8876
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8877
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8878
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8879
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8880
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8881
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8882
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8883
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8884
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8885
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8886
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8887
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8888
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8889
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8890
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8891
    }/*function_byte_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8892
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8893
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8894
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8895
 *BYTE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8896
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8897
    case function_byte_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8898
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8899
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8900
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8901
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8902
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8903
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8904
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8905
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8906
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8907
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8908
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8909
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8910
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8911
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8912
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8913
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8914
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8915
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8916
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8917
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8918
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8919
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8920
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8921
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8922
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8923
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8924
    }/*function_byte_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8925
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8926
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8927
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8928
 *BYTE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8929
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8930
    case function_byte_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8931
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8932
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8933
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8934
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8935
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8936
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8937
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8938
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8939
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8940
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8941
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8942
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8943
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8944
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8945
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8946
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8947
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8948
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8949
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8950
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8951
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8952
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8953
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8954
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8955
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8956
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8957
    }/*function_byte_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8958
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8959
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8960
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8961
 *BYTE_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8962
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8963
    case function_byte_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8964
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8965
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8966
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8967
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8968
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8969
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8970
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8971
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8972
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8973
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8974
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8975
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8976
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8977
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8978
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8979
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8980
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8981
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8982
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8983
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8984
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8985
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8986
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8987
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8988
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8989
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8990
    }/*function_byte_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8991
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8992
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8993
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8994
 *BYTE_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8995
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8996
    case function_byte_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8997
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8998
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8999
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9000
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9001
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9002
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9003
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9004
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9005
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9006
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9007
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9008
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9009
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9010
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9011
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9012
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9013
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9014
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9015
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9016
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9017
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9018
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9019
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9020
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9021
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9022
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9023
    }/*function_byte_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9024
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9025
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9026
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9027
 *BYTE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9028
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9029
    case function_byte_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9030
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9031
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9032
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9033
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9034
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9035
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9036
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9037
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9038
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9039
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9040
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9041
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9042
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9043
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9044
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9045
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9046
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9047
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9048
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9049
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9050
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9051
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9052
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9053
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9054
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9055
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9056
    }/*function_byte_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9057
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9058
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9059
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9060
 *USINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9061
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9062
    case function_usint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9063
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9064
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9065
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9066
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9067
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9068
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9069
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9070
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9071
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9072
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9073
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9074
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9075
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9076
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9077
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9078
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9079
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9080
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9081
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9082
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9083
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9084
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9085
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9086
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9087
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9088
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9089
    }/*function_usint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9090
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9091
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9092
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9093
 *USINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9094
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9095
    case function_usint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9096
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9097
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9098
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9099
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9100
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9101
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9102
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9103
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9104
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9105
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9106
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9107
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9108
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9109
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9110
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9111
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9112
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9113
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9114
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9115
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9116
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9117
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9118
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9119
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9120
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9121
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9122
    }/*function_usint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9123
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9124
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9125
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9126
 *USINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9127
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9128
    case function_usint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9129
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9130
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9131
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9132
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9133
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9134
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9135
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9136
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9137
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9138
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9139
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9140
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9141
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9142
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9143
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9144
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9145
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9146
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9147
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9148
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9149
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9150
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9151
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9152
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9153
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9154
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9155
    }/*function_usint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9156
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9157
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9158
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9159
 *USINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9160
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9161
    case function_usint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9162
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9163
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9164
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9165
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9166
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9167
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9168
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9169
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9170
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9171
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9172
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9173
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9174
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9175
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9176
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9177
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9178
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9179
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9180
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9181
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9182
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9183
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9184
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9185
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9186
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9187
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9188
    }/*function_usint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9189
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9190
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9191
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9192
 *USINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9193
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9194
    case function_usint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9195
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9196
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9197
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9198
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9199
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9200
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9201
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9202
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9203
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9204
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9205
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9206
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9207
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9208
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9209
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9210
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9211
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9212
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9213
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9214
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9215
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9216
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9217
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9218
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9219
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9220
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9221
    }/*function_usint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9222
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9223
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9224
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9225
 *USINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9226
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9227
    case function_usint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9228
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9229
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9230
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9231
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9232
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9233
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9234
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9235
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9236
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9237
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9238
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9239
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9240
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9241
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9242
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9243
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9244
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9245
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9246
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9247
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9248
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9249
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9250
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9251
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9252
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9253
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9254
    }/*function_usint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9255
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9256
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9257
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9258
 *USINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9259
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9260
    case function_usint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9261
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9262
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9263
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9264
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9265
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9266
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9267
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9268
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9269
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9270
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9271
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9272
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9273
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9274
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9275
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9276
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9277
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9278
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9279
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9280
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9281
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9282
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9283
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9284
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9285
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9286
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9287
    }/*function_usint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9288
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9289
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9290
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9291
 *USINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9292
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9293
    case function_usint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9294
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9295
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9296
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9297
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9298
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9299
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9300
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9301
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9302
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9303
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9304
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9305
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9306
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9307
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9308
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9309
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9310
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9311
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9312
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9313
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9314
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9315
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9316
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9317
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9318
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9319
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9320
    }/*function_usint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9321
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9322
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9323
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9324
 *USINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9325
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9326
    case function_usint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9327
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9328
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9329
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9330
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9331
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9332
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9333
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9334
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9335
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9336
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9337
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9338
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9339
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9340
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9341
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9342
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9343
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9344
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9345
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9346
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9347
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9348
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9349
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9350
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9351
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9352
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9353
    }/*function_usint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9354
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9355
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9356
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9357
 *USINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9358
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9359
    case function_usint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9360
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9361
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9362
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9363
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9364
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9365
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9366
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9367
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9368
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9369
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9370
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9371
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9372
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9373
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9374
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9375
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9376
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9377
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9378
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9379
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9380
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9381
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9382
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9383
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9384
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9385
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9386
    }/*function_usint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9387
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9388
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9389
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9390
 *USINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9391
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9392
    case function_usint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9393
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9394
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9395
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9396
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9397
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9398
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9399
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9400
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9401
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9402
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9403
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9404
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9405
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9406
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9407
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9408
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9409
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9410
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9411
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9412
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9413
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9414
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9415
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9416
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9417
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9418
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9419
    }/*function_usint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9420
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9421
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9422
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9423
 *USINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9424
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9425
    case function_usint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9426
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9427
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9428
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9429
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9430
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9431
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9432
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9433
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9434
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9435
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9436
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9437
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9438
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9439
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9440
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9441
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9442
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9443
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9444
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9445
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9446
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9447
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9448
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9449
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9450
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9451
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9452
    }/*function_usint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9453
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9454
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9455
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9456
 *USINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9457
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9458
    case function_usint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9459
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9460
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9461
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9462
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9463
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9464
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9465
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9466
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9467
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9468
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9469
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9470
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9471
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9472
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9473
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9474
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9475
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9476
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9477
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9478
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9479
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9480
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9481
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9482
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9483
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9484
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9485
    }/*function_usint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9486
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9487
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9488
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9489
 *USINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9490
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9491
    case function_usint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9492
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9493
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9494
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9495
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9496
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9497
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9498
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9499
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9500
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9501
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9502
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9503
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9504
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9505
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9506
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9507
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9508
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9509
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9510
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9511
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9512
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9513
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9514
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9515
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9516
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9517
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9518
    }/*function_usint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9519
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9520
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9521
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9522
 *USINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9523
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9524
    case function_usint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9525
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9526
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9527
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9528
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9529
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9530
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9531
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9532
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9533
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9534
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9535
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9536
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9537
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9538
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9539
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9540
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9541
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9542
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9543
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9544
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9545
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9546
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9547
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9548
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9549
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9550
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9551
    }/*function_usint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9552
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9553
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9554
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9555
 *USINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9556
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9557
    case function_usint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9558
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9559
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9560
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9561
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9562
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9563
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9564
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9566
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9567
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9568
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9569
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9570
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9571
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9572
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9573
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9574
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9575
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9576
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9577
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9578
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9579
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9580
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9581
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9582
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9583
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9584
    }/*function_usint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9585
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9586
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9587
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9588
 *USINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9589
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9590
    case function_usint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9591
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9592
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9593
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9594
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9595
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9596
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9597
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9598
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9599
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9600
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9601
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9602
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9603
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9604
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9605
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9606
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9607
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9608
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9609
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9610
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9611
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9612
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9613
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9614
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9615
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9616
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9617
    }/*function_usint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9618
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9619
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9620
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9621
 *USINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9622
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9623
    case function_usint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9624
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9625
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9626
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9627
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9628
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9629
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9630
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9631
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9632
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9633
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9634
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9635
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9636
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9637
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9638
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9639
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9640
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9641
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9642
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9643
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9644
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9645
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9646
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9647
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9648
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9649
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9650
    }/*function_usint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9651
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9652
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9653
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9654
 *USINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9655
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9656
    case function_usint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9657
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9658
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9659
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9660
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9661
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9662
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9663
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9664
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9665
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9666
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9667
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9668
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9669
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9670
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9671
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9672
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9673
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9674
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9675
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9676
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9677
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9678
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9679
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9680
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9681
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9682
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9683
    }/*function_usint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9684
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9685
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9686
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9687
 *ULINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9688
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9689
    case function_ulint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9690
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9691
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9692
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9693
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9694
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9695
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9696
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9697
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9698
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9699
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9700
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9701
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9702
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9703
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9704
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9705
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9706
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9707
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9708
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9709
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9710
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9711
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9712
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9713
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9714
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9715
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9716
    }/*function_ulint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9717
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9718
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9719
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9720
 *ULINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9721
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9722
    case function_ulint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9723
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9724
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9725
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9726
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9727
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9728
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9729
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9730
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9731
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9732
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9733
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9734
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9735
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9736
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9737
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9738
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9739
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9740
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9741
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9742
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9743
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9744
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9745
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9746
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9747
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9748
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9749
    }/*function_ulint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9750
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9751
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9752
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9753
 *ULINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9754
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9755
    case function_ulint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9756
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9757
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9758
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9759
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9760
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9761
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9762
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9763
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9764
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9765
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9766
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9767
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9768
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9769
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9770
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9771
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9772
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9773
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9774
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9775
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9776
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9777
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9778
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9779
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9780
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9781
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9782
    }/*function_ulint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9783
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9784
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9785
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9786
 *ULINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9787
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9788
    case function_ulint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9789
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9790
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9791
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9792
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9793
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9794
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9795
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9796
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9797
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9798
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9799
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9800
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9801
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9802
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9803
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9804
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9805
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9806
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9807
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9808
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9809
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9810
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9811
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9812
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9813
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9814
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9815
    }/*function_ulint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9816
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9817
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9818
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9819
 *ULINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9820
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9821
    case function_ulint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9822
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9823
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9824
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9825
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9826
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9827
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9828
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9829
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9830
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9831
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9832
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9833
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9834
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9835
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9836
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9837
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9839
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9840
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9841
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9842
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9843
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9844
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9845
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9846
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9847
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9848
    }/*function_ulint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9849
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9850
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9851
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9852
 *ULINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9853
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9854
    case function_ulint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9855
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9856
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9857
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9858
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9859
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9860
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9861
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9862
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9863
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9864
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9865
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9866
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9867
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9868
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9869
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9870
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9871
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9872
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9873
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9874
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9875
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9876
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9877
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9878
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9879
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9880
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9881
    }/*function_ulint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9882
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9883
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9884
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9885
 *ULINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9886
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9887
    case function_ulint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9888
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9889
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9890
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9891
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9892
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9893
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9894
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9895
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9896
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9897
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9898
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9899
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9900
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9901
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9902
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9903
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9904
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9905
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9906
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9907
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9908
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9909
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9910
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9911
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9912
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9913
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9914
    }/*function_ulint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9915
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9916
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9917
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9918
 *ULINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9919
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9920
    case function_ulint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9921
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9922
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9923
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9924
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9925
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9926
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9927
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9928
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9929
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9930
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9931
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9932
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9933
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9934
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9935
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9936
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9937
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9938
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9939
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9940
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9941
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9942
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9943
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9944
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9945
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9946
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9947
    }/*function_ulint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9948
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9949
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9950
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9951
 *ULINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9952
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9953
    case function_ulint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9954
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9955
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9956
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9957
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9958
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9959
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9960
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9961
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9962
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9963
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9964
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9965
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9966
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9967
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9968
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9969
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9970
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9971
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9972
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9973
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9974
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9975
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9976
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9977
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9978
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9979
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9980
    }/*function_ulint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9981
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9982
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9983
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9984
 *ULINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9985
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9986
    case function_ulint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9987
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9988
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9989
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9990
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9991
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9992
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9993
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9994
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9995
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9996
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9997
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9998
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9999
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10000
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10001
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10002
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10003
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10004
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10005
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10006
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10007
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10009
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10010
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10011
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10012
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10013
    }/*function_ulint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10014
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10015
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10016
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10017
 *ULINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10018
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10019
    case function_ulint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10020
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10021
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10022
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10023
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10024
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10025
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10026
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10027
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10028
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10029
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10030
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10031
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10032
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10033
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10034
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10035
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10036
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10037
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10038
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10039
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10040
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10041
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10042
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10043
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10044
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10045
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10046
    }/*function_ulint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10047
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10048
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10049
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10050
 *ULINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10051
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10052
    case function_ulint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10053
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10054
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10055
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10056
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10057
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10058
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10059
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10060
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10061
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10062
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10063
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10064
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10065
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10066
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10067
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10068
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10069
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10070
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10071
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10072
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10073
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10074
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10075
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10076
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10077
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10078
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10079
    }/*function_ulint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10080
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10081
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10082
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10083
 *ULINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10084
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10085
    case function_ulint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10086
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10087
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10088
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10089
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10090
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10091
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10092
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10093
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10094
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10095
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10096
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10097
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10098
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10099
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10100
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10101
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10102
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10103
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10104
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10105
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10106
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10107
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10108
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10109
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10110
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10111
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10112
    }/*function_ulint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10113
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10114
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10115
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10116
 *ULINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10117
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10118
    case function_ulint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10119
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10120
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10121
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10122
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10123
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10124
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10125
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10126
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10127
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10128
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10129
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10130
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10131
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10132
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10133
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10134
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10135
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10136
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10137
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10138
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10139
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10140
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10142
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10143
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10144
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10145
    }/*function_ulint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10146
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10147
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10148
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10149
 *ULINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10150
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10151
    case function_ulint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10152
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10153
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10154
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10155
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10156
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10157
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10158
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10160
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10161
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10162
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10163
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10164
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10165
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10166
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10167
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10168
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10169
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10170
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10171
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10172
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10173
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10174
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10175
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10176
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10177
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10178
    }/*function_ulint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10179
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10180
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10181
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10182
 *ULINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10183
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10184
    case function_ulint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10185
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10186
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10187
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10188
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10189
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10190
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10191
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10192
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10193
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10194
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10195
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10196
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10197
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10198
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10199
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10200
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10201
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10202
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10203
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10204
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10205
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10206
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10207
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10208
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10209
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10210
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10211
    }/*function_ulint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10212
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10213
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10214
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10215
 *ULINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10216
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10217
    case function_ulint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10218
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10219
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10220
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10221
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10222
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10223
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10224
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10225
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10226
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10227
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10228
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10229
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10230
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10231
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10232
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10233
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10234
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10235
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10236
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10237
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10238
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10239
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10240
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10241
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10242
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10243
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10244
    }/*function_ulint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10245
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10246
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10247
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10248
 *ULINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10249
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10250
    case function_ulint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10251
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10252
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10253
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10254
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10255
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10256
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10257
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10258
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10259
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10260
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10261
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10262
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10263
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10264
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10265
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10266
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10267
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10268
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10269
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10270
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10271
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10272
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10273
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10274
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10275
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10276
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10277
    }/*function_ulint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10278
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10279
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10280
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10281
 *ULINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10282
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10283
    case function_ulint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10284
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10285
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10286
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10287
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10288
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10289
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10290
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10291
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10292
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10293
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10294
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10295
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10296
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10298
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10299
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10301
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10302
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10303
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10304
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10305
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10306
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10307
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10308
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10309
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10310
    }/*function_ulint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10311
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10312
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10313
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10314
 *BOOL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10315
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10316
    case function_bool_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10317
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10318
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10319
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10320
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10321
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10322
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10323
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10324
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10325
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10326
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10327
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10328
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10329
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10330
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10331
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10332
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10333
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10334
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10335
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10336
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10337
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10338
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10339
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10340
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10341
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10342
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10343
    }/*function_bool_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10344
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10345
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10346
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10347
 *BOOL_TO_SINT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10348
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10349
    case function_bool_to_sint :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10350
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10351
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10352
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10353
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10354
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10355
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10356
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10357
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10358
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10359
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10360
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10361
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10362
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10363
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10364
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10365
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10366
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10367
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10368
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10369
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10370
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10371
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10372
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10373
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10374
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10375
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10376
    }/*function_bool_to_sint*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10377
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10378
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10379
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10380
 *BOOL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10381
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10382
    case function_bool_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10383
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10384
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10385
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10386
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10387
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10388
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10389
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10390
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10391
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10392
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10393
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10394
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10395
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10396
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10397
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10398
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10399
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10400
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10401
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10402
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10403
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10404
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10406
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10407
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10408
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10409
    }/*function_bool_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10410
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10411
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10412
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10413
 *BOOL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10414
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10415
    case function_bool_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10416
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10417
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10418
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10419
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10420
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10421
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10422
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10423
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10424
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10425
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10426
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10427
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10428
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10429
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10430
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10431
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10432
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10433
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10434
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10435
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10436
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10437
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10438
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10439
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10440
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10441
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10442
    }/*function_bool_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10443
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10444
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10445
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10446
 *BOOL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10447
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10448
    case function_bool_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10449
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10450
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10451
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10452
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10453
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10454
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10455
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10456
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10457
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10458
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10459
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10460
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10461
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10462
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10463
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10464
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10465
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10466
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10467
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10468
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10469
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10470
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10471
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10472
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10473
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10474
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10475
    }/*function_bool_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10476
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10477
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10478
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10479
 *BOOL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10480
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10481
    case function_bool_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10482
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10483
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10484
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10485
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10486
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10487
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10488
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10489
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10490
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10491
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10492
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10493
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10494
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10496
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10497
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10498
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10499
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10500
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10501
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10502
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10504
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10505
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10506
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10507
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10508
    }/*function_bool_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10509
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10510
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10511
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10512
 *BOOL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10513
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10514
    case function_bool_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10515
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10516
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10517
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10518
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10519
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10520
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10521
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10522
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10523
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10524
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10525
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10526
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10527
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10528
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10529
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10530
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10531
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10532
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10533
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10534
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10535
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10536
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10537
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10538
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10539
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10540
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10541
    }/*function_bool_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10542
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10543
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10544
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10545
 *BOOL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10546
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10547
    case function_bool_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10548
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10549
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10550
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10551
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10552
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10553
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10554
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10555
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10556
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10557
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10558
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10559
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10560
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10561
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10562
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10563
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10564
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10565
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10566
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10567
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10568
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10569
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10570
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10571
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10572
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10573
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10574
    }/*function_bool_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10575
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10576
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10577
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10578
 *BOOL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10579
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10580
    case function_bool_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10581
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10582
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10583
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10584
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10585
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10586
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10587
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10588
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10589
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10590
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10591
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10592
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10593
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10594
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10595
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10596
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10597
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10598
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10599
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10600
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10601
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10602
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10603
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10604
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10605
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10606
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10607
    }/*function_bool_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10608
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10609
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10610
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10611
 *BOOL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10612
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10613
    case function_bool_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10614
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10615
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10616
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10617
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10618
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10619
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10620
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10621
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10622
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10623
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10624
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10625
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10626
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10627
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10628
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10629
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10630
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10631
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10632
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10633
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10634
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10635
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10636
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10637
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10638
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10639
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10640
    }/*function_bool_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10641
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10642
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10643
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10644
 *BOOL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10645
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10646
    case function_bool_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10647
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10648
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10649
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10650
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10651
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10652
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10653
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10654
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10655
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10656
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10657
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10658
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10659
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10660
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10661
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10662
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10664
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10665
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10666
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10667
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10668
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10669
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10670
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10671
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10672
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10673
    }/*function_bool_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10674
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10675
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10676
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10677
 *BOOL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10678
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10679
    case function_bool_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10680
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10681
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10682
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10683
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10684
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10685
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10686
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10687
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10688
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10689
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10690
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10691
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10692
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10693
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10694
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10695
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10696
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10697
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10698
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10699
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10700
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10701
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10702
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10703
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10704
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10705
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10706
    }/*function_bool_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10707
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10708
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10709
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10710
 *BOOL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10711
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10712
    case function_bool_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10713
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10714
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10715
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10716
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10717
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10718
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10719
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10720
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10721
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10722
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10723
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10724
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10725
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10726
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10727
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10728
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10729
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10730
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10731
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10732
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10733
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10734
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10735
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10736
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10737
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10738
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10739
    }/*function_bool_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10740
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10741
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10742
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10743
 *BOOL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10744
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10745
    case function_bool_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10746
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10747
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10748
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10749
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10750
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10751
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10752
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10754
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10755
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10756
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10757
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10758
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10759
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10760
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10761
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10762
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10763
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10764
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10765
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10766
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10767
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10768
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10769
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10770
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10771
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10772
    }/*function_bool_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10773
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10774
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10775
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10776
 *BOOL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10777
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10778
    case function_bool_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10779
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10780
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10781
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10782
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10783
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10784
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10785
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10786
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10787
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10788
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10789
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10790
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10791
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10792
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10793
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10794
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10795
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10796
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10797
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10798
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10799
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10800
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10801
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10802
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10803
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10804
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10805
    }/*function_bool_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10806
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10807
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10808
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10809
 *BOOL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10810
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10811
    case function_bool_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10812
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10813
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10814
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10815
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10816
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10817
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10818
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10819
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10820
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10821
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10822
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10823
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10824
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10825
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10826
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10827
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10828
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10829
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10830
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10831
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10832
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10833
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10834
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10835
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10836
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10837
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10838
    }/*function_bool_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10839
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10840
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10841
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10842
 *BOOL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10843
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10844
    case function_bool_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10845
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10846
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10847
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10848
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10849
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10850
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10851
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10852
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10853
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10854
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10855
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10856
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10857
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10858
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10859
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10860
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10861
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10862
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10863
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10864
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10865
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10866
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10867
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10868
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10869
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10870
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10871
    }/*function_bool_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10872
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10873
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10874
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10875
 *BOOL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10876
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10877
    case function_bool_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10878
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10879
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10880
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10881
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10882
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10883
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10884
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10885
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10886
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10887
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10888
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10889
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10890
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10891
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10892
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10893
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10894
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10895
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10896
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10897
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10898
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10899
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10900
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10901
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10902
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10903
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10904
    }/*function_bool_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10905
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10906
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10907
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10908
 *BOOL_TO_INT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10909
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10910
    case function_bool_to_int :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10911
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10912
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10913
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10914
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10915
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10916
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10917
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10918
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10919
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10920
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10921
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10922
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10923
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10924
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10925
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10926
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10927
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10928
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10929
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10930
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10931
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10932
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10933
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10934
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10935
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10936
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10937
    }/*function_bool_to_int*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10938
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10939
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10940
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10941
 *TIME_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10942
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10943
    case function_time_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10944
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10945
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10946
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10947
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10948
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10949
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10950
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10951
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10952
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10953
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10954
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10955
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10956
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10957
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10958
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10959
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10960
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10961
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10962
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10963
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10964
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10965
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10966
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10967
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10968
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10969
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10970
    }/*function_time_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10971
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10972
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10973
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10974
 *TIME_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10975
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10976
    case function_time_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10977
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10978
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10979
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10980
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10981
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10982
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10983
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10984
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10985
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10986
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10987
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10988
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10989
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10990
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10991
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10992
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10993
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10994
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10995
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10996
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10997
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10998
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10999
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11000
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11001
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11002
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11003
    }/*function_time_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11004
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11005
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11006
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11007
 *TIME_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11008
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11009
    case function_time_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11010
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11011
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11012
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11013
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11014
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11015
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11016
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11017
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11018
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11019
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11020
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11021
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11022
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11023
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11024
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11025
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11026
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11027
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11028
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11029
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11030
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11031
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11032
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11033
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11034
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11035
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11036
    }/*function_time_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11037
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11038
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11039
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11040
 *TIME_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11041
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11042
    case function_time_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11043
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11044
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11045
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11046
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11047
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11048
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11049
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11050
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11051
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11052
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11053
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11054
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11055
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11056
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11057
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11058
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11059
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11060
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11061
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11062
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11063
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11064
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11065
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11066
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11067
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11068
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11069
    }/*function_time_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11070
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11071
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11072
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11073
 *TIME_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11074
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11075
    case function_time_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11076
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11077
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11078
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11079
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11080
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11081
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11082
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11083
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11084
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11085
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11086
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11087
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11088
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11090
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11091
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11092
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11093
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11094
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11095
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11096
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11098
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11099
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11100
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11101
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11102
    }/*function_time_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11103
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11104
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11105
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11106
 *TIME_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11107
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11108
    case function_time_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11109
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11110
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11111
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11112
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11113
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11114
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11115
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11116
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11117
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11118
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11119
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11120
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11121
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11122
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11123
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11124
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11125
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11126
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11127
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11128
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11129
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11130
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11131
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11132
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11133
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11134
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11135
    }/*function_time_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11136
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11137
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11138
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11139
 *TIME_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11140
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11141
    case function_time_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11142
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11143
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11144
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11145
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11146
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11147
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11148
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11149
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11150
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11151
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11152
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11153
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11154
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11155
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11156
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11157
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11159
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11160
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11161
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11162
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11163
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11164
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11165
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11166
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11167
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11168
    }/*function_time_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11169
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11170
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11171
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11172
 *TIME_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11173
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11174
    case function_time_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11175
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11176
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11177
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11178
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11179
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11180
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11181
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11182
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11183
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11184
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11185
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11186
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11187
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11188
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11189
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11190
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11191
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11192
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11193
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11194
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11195
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11196
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11197
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11198
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11199
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11200
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11201
    }/*function_time_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11202
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11203
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11204
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11205
 *TIME_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11206
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11207
    case function_time_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11208
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11209
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11210
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11211
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11212
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11213
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11214
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11215
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11216
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11217
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11218
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11219
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11220
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11221
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11222
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11223
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11224
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11225
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11226
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11227
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11228
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11229
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11230
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11231
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11232
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11233
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11234
    }/*function_time_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11235
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11236
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11237
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11238
 *TIME_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11239
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11240
    case function_time_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11241
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11242
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11243
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11244
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11245
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11246
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11247
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11248
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11249
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11250
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11251
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11252
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11253
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11254
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11255
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11256
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11257
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11258
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11259
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11260
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11261
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11262
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11263
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11264
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11265
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11266
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11267
    }/*function_time_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11268
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11269
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11270
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11271
 *TIME_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11272
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11273
    case function_time_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11274
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11275
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11276
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11277
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11278
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11279
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11280
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11281
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11282
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11283
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11284
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11285
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11286
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11288
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11289
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11290
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11291
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11292
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11293
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11294
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11295
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11296
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11297
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11298
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11299
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11300
    }/*function_time_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11301
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11302
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11303
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11304
 *TIME_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11305
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11306
    case function_time_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11307
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11308
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11310
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11311
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11312
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11313
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11314
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11315
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11316
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11317
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11318
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11319
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11320
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11321
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11322
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11323
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11324
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11325
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11326
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11327
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11329
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11330
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11331
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11332
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11333
    }/*function_time_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11334
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11335
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11336
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11337
 *TIME_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11338
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11339
    case function_time_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11340
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11341
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11342
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11343
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11344
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11345
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11346
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11347
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11348
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11349
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11350
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11351
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11352
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11353
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11354
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11355
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11356
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11357
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11358
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11359
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11360
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11361
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11362
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11363
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11364
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11365
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11366
    }/*function_time_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11367
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11368
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11369
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11370
 *TIME_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11371
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11372
    case function_time_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11373
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11374
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11375
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11376
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11377
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11378
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11379
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11380
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11381
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11382
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11383
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11384
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11385
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11386
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11387
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11388
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11389
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11390
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11391
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11392
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11393
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11394
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11395
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11396
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11397
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11398
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11399
    }/*function_time_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11400
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11401
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11402
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11403
 *TIME_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11404
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11405
    case function_time_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11406
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11407
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11408
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11409
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11410
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11411
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11412
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11413
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11414
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11415
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11416
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11417
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11418
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11419
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11420
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11421
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11422
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11423
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11424
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11425
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11426
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11427
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11428
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11429
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11430
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11431
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11432
    }/*function_time_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11433
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11434
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11435
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11436
 *INT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11437
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11438
    case function_int_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11439
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11440
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11441
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11442
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11443
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11444
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11445
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11446
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11447
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11448
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11449
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11450
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11451
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11452
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11453
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11454
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11455
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11456
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11457
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11458
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11459
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11460
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11461
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11462
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11463
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11464
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11465
    }/*function_int_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11466
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11467
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11468
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11469
 *INT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11470
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11471
    case function_int_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11472
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11473
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11474
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11475
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11476
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11477
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11478
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11479
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11480
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11481
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11482
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11483
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11484
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11485
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11486
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11487
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11488
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11489
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11490
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11491
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11492
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11493
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11494
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11495
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11496
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11497
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11498
    }/*function_int_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11499
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11500
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11501
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11502
 *INT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11503
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11504
    case function_int_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11505
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11506
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11507
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11508
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11509
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11510
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11511
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11512
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11513
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11514
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11515
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11516
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11517
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11518
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11519
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11520
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11521
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11522
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11523
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11524
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11525
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11526
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11527
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11528
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11529
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11530
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11531
    }/*function_int_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11532
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11533
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11534
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11535
 *INT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11536
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11537
    case function_int_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11538
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11539
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11540
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11541
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11542
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11543
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11544
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11545
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11546
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11547
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11548
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11549
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11550
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11551
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11552
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11553
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11554
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11555
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11556
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11557
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11558
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11559
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11560
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11561
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11562
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11563
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11564
    }/*function_int_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11565
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11566
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11567
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11568
 *INT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11569
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11570
    case function_int_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11571
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11572
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11573
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11574
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11575
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11576
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11577
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11578
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11579
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11580
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11581
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11582
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11583
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11584
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11585
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11586
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11587
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11588
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11589
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11590
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11591
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11592
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11593
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11594
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11595
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11596
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11597
    }/*function_int_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11598
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11599
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11600
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11601
 *INT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11602
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11603
    case function_int_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11604
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11605
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11606
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11607
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11608
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11609
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11610
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11611
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11612
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11613
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11614
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11615
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11616
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11617
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11618
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11619
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11620
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11621
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11622
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11623
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11624
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11625
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11626
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11627
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11628
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11629
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11630
    }/*function_int_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11631
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11632
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11633
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11634
 *INT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11635
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11636
    case function_int_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11637
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11638
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11639
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11640
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11641
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11642
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11643
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11644
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11645
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11646
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11647
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11648
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11649
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11650
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11651
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11652
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11653
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11654
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11655
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11656
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11657
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11658
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11660
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11661
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11662
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11663
    }/*function_int_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11664
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11665
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11666
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11667
 *INT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11668
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11669
    case function_int_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11670
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11671
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11672
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11673
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11674
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11675
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11676
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11677
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11678
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11679
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11680
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11681
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11682
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11683
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11684
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11685
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11686
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11687
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11688
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11689
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11690
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11692
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11693
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11694
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11695
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11696
    }/*function_int_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11697
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11698
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11699
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11700
 *INT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11701
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11702
    case function_int_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11703
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11704
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11705
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11706
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11707
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11708
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11709
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11710
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11711
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11712
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11713
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11714
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11715
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11716
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11717
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11718
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11719
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11720
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11721
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11722
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11723
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11724
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11725
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11726
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11727
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11728
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11729
    }/*function_int_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11730
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11731
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11732
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11733
 *INT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11734
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11735
    case function_int_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11736
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11737
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11738
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11739
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11740
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11741
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11742
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11743
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11744
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11745
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11746
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11747
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11748
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11749
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11750
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11751
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11752
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11753
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11754
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11755
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11756
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11757
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11758
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11759
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11760
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11761
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11762
    }/*function_int_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11763
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11764
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11765
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11766
 *INT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11767
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11768
    case function_int_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11769
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11770
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11771
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11772
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11773
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11774
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11775
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11776
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11777
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11778
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11779
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11780
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11781
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11782
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11783
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11784
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11785
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11786
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11787
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11788
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11789
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11790
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11791
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11792
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11793
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11794
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11795
    }/*function_int_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11796
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11797
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11798
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11799
 *INT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11800
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11801
    case function_int_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11802
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11803
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11804
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11805
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11806
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11807
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11808
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11809
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11810
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11811
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11812
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11813
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11814
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11815
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11816
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11817
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11818
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11819
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11820
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11821
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11822
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11823
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11824
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11825
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11826
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11827
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11828
    }/*function_int_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11829
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11830
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11831
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11832
 *INT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11833
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11834
    case function_int_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11835
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11836
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11837
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11838
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11839
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11840
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11841
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11842
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11843
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11844
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11845
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11846
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11847
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11848
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11849
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11850
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11851
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11852
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11853
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11854
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11855
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11856
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11857
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11858
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11859
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11860
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11861
    }/*function_int_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11862
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11863
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11864
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11865
 *INT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11866
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11867
    case function_int_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11868
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11869
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11870
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11871
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11872
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11873
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11874
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11875
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11876
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11877
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11878
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11879
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11880
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11881
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11882
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11883
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11884
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11885
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11886
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11887
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11888
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11889
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11890
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11891
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11892
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11893
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11894
    }/*function_int_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11895
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11896
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11897
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11898
 *INT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11899
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11900
    case function_int_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11901
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11902
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11903
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11904
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11905
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11906
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11907
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11908
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11909
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11910
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11911
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11912
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11913
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11914
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11915
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11916
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11917
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11918
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11919
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11920
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11921
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11922
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11923
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11924
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11925
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11926
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11927
    }/*function_int_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11928
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11929
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11930
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11931
 *INT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11932
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11933
    case function_int_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11934
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11935
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11936
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11937
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11938
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11939
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11940
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11941
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11942
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11943
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11944
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11945
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11946
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11947
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11948
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11949
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11950
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11951
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11952
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11953
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11954
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11955
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11956
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11957
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11958
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11959
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11960
    }/*function_int_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11961
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11962
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11963
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11964
 *INT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11965
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11966
    case function_int_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11967
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11968
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11969
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11970
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11971
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11972
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11973
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11974
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11975
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11976
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11977
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11978
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11979
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11980
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11981
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11982
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11983
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11984
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11985
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11986
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11987
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11988
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11989
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11990
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11991
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11992
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11993
    }/*function_int_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11994
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11995
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11996
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11997
 *INT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11998
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11999
    case function_int_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12000
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12001
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12002
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12003
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12004
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12005
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12006
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12007
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12008
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12009
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12010
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12011
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12012
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12013
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12014
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12015
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12016
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12017
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12018
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12019
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12020
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12021
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12022
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12023
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12024
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12025
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12026
    }/*function_int_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12027
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12028
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12029
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12030
 *INT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12031
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12032
    case function_int_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12033
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12034
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12035
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12036
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12037
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12038
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12039
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12040
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12041
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12042
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12043
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12044
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12045
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12046
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12047
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12048
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12049
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12050
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12051
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12052
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12053
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12054
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12055
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12056
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12057
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12058
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12059
    }/*function_int_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12060
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12061
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12062
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12063
 *TRUNC
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12064
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12065
    case function_trunc :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12066
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12067
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12068
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12069
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12070
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12071
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12072
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12073
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12074
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12075
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12076
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12077
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12078
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12079
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12080
            if(search_expression_type->is_real_type(IN_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12081
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12082
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12083
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12084
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12085
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12086
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12087
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12088
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12089
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12090
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12091
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12092
    }/*function_trunc*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12093
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12094
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12095
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12096
 *BCD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12097
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12098
    case function_bcd_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12099
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12100
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12101
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12102
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12103
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12104
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12105
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12106
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12107
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12108
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12109
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12110
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12111
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12112
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12113
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12114
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12115
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12116
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12117
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12118
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12119
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12121
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12122
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12123
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12124
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12125
    }/*function_bcd_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12126
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12127
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12128
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12129
 *BCD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12130
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12131
    case function_bcd_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12132
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12133
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12134
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12135
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12136
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12137
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12138
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12139
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12140
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12141
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12142
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12143
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12144
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12145
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12146
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12147
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12148
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12149
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12150
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12151
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12152
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12153
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12155
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12156
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12157
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12158
    }/*function_bcd_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12159
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12160
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12161
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12162
 *BCD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12163
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12164
    case function_bcd_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12165
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12166
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12167
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12168
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12169
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12170
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12171
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12172
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12173
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12174
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12175
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12176
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12177
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12178
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12179
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12180
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12181
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12182
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12183
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12184
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12185
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12186
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12187
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12188
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12189
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12190
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12191
    }/*function_bcd_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12192
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12193
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12194
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12195
 *BCD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12196
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12197
    case function_bcd_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12198
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12199
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12200
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12201
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12202
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12203
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12204
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12205
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12206
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12207
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12208
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12209
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12210
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12211
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12212
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12213
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12214
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12215
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12216
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12217
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12218
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12219
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12220
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12221
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12222
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12223
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12224
    }/*function_bcd_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12225
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12226
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12227
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12228
 *UDINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12229
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12230
    case function_udint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12231
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12232
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12234
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12235
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12236
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12237
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12238
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12239
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12240
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12241
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12242
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12243
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12244
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12245
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12246
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12247
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12248
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12249
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12250
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12251
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12252
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12254
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12255
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12256
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12257
    }/*function_udint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12258
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12259
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12260
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12261
 *UINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12262
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12263
    case function_uint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12264
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12265
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12266
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12267
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12268
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12269
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12270
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12271
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12272
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12273
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12274
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12275
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12276
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12277
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12278
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12279
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12280
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12281
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12282
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12283
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12284
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12286
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12287
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12288
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12289
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12290
    }/*function_uint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12291
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12292
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12293
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12294
 *USINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12295
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12296
    case function_usint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12297
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12298
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12299
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12300
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12301
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12302
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12303
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12304
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12305
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12306
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12307
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12308
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12309
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12310
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12311
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12312
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12313
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12314
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12315
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12316
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12317
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12318
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12319
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12320
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12321
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12322
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12323
    }/*function_usint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12324
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12325
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12326
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12327
 *ULINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12328
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12329
    case function_ulint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12330
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12331
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12332
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12333
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12334
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12335
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12336
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12337
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12338
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12339
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12340
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12341
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12342
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12343
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12344
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12345
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12346
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12347
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12348
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12349
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12350
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12351
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12352
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12353
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12354
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12355
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12356
    }/*function_ulint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12357
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12358
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12359
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12360
 *DATE_AND_TIME_TO_TIME_OF_DAY
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12361
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12362
    case function_date_and_time_to_time_of_day :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12363
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12364
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12365
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12366
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12367
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12368
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12369
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12370
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12371
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12372
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12373
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12374
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12375
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12376
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12377
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12378
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12379
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12380
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12381
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12382
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12383
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12384
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12385
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12386
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12387
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12388
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12389
    }/*function_date_and_time_to_time_of_day*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12390
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12391
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12392
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12393
 *DATE_AND_TIME_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12394
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12395
    case function_date_and_time_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12396
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12397
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12398
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12399
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12400
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12401
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12402
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12403
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12404
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12405
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12406
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12407
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12408
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12409
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12410
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12411
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12412
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12413
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12414
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12415
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12416
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12417
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12418
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12419
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12420
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12421
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12422
    }/*function_date_and_time_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12423
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12424
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12425
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12426
 *ABS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12427
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12428
    case function_abs :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12429
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12430
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12431
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12432
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12433
            identifier_c param_name("IN");
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12434
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12435
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12436
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12437
            /* Get the value from a foo(<param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12438
            if (IN_param_value == NULL)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12439
              IN_param_value = function_call_param_iterator.next();
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12440
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12441
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12442
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12443
            if(search_expression_type->is_num_type(IN_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12444
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12445
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12446
                symbol_c * return_type_symbol = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12447
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12448
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12449
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12450
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12451
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12452
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12453
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12454
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12455
    }/*function_abs*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12456
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12457
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12458
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12459
 *SQRT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12460
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12461
    case function_sqrt :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12462
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12463
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12464
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12465
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12466
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12467
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12468
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12469
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12470
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12471
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12472
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12473
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12474
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12475
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12476
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12477
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12478
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12479
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12480
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12481
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12482
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12483
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12484
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12485
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12486
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12487
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12488
    }/*function_sqrt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12489
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12490
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12491
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12492
 *LN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12493
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12494
    case function_ln :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12495
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12496
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12497
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12498
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12499
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12500
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12501
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12502
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12503
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12504
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12505
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12506
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12507
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12508
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12509
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12510
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12511
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12512
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12513
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12514
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12515
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12516
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12517
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12518
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12519
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12520
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12521
    }/*function_ln*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12522
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12523
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12524
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12525
 *LOG
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12526
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12527
    case function_log :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12528
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12529
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12530
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12531
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12532
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12533
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12534
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12535
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12536
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12537
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12538
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12539
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12540
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12541
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12542
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12543
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12544
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12545
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12546
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12547
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12548
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12549
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12550
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12551
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12552
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12553
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12554
    }/*function_log*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12555
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12556
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12557
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12558
 *EXP
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12559
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12560
    case function_exp :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12561
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12562
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12563
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12564
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12565
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12566
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12567
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12568
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12569
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12570
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12571
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12572
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12573
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12574
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12575
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12576
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12577
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12578
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12579
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12580
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12581
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12582
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12583
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12584
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12585
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12586
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12587
    }/*function_exp*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12588
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12589
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12590
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12591
 *SIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12592
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12593
    case function_sin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12594
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12595
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12596
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12597
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12598
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12599
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12600
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12601
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12602
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12603
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12604
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12605
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12606
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12607
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12608
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12609
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12610
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12611
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12612
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12613
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12614
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12615
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12616
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12617
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12618
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12619
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12620
    }/*function_sin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12621
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12622
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12623
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12624
 *COS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12625
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12626
    case function_cos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12627
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12628
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12629
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12630
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12631
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12632
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12633
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12634
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12635
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12636
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12637
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12638
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12639
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12640
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12641
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12642
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12643
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12644
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12645
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12646
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12647
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12648
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12649
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12650
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12651
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12652
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12653
    }/*function_cos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12654
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12655
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12656
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12657
 *TAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12658
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12659
    case function_tan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12660
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12661
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12662
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12663
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12664
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12665
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12666
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12667
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12668
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12669
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12670
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12671
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12672
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12673
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12674
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12675
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12676
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12677
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12678
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12679
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12680
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12681
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12682
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12683
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12684
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12685
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12686
    }/*function_tan*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12687
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12688
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12689
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12690
 *ASIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12691
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12692
    case function_asin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12693
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12694
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12695
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12696
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12697
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12698
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12699
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12700
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12701
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12702
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12703
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12704
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12705
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12706
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12707
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12708
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12709
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12710
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12711
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12712
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12713
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12714
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12715
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12716
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12717
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12718
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12719
    }/*function_asin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12720
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12721
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12722
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12723
 *ACOS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12724
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12725
    case function_acos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12726
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12727
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12728
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12729
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12730
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12731
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12732
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12733
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12734
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12735
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12736
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12737
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12738
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12739
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12740
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12741
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12742
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12743
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12744
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12745
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12746
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12747
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12748
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12749
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12750
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12751
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12752
    }/*function_acos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12753
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12754
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12755
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12756
 *ATAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12757
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12758
    case function_atan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12759
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12760
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12761
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12762
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12763
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12764
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12765
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12766
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12767
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12768
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12769
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12770
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12771
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12772
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12773
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12774
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12775
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12776
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12777
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12778
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12779
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12780
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12781
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12782
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12783
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12784
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12785
    }/*function_atan*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12786
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12787
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12788
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12789
 *ADD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12790
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12791
    case function_add :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12792
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12793
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12794
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12795
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12796
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12797
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12798
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12799
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12800
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12801
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12802
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12803
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12804
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12805
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12806
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12807
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12808
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12809
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12810
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12811
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12812
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12813
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12814
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12815
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12816
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12817
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12818
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12819
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12820
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12821
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12822
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12823
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12824
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12825
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12826
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12827
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12828
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12829
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12830
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12831
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12832
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12833
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12834
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12835
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12836
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12837
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12838
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12839
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12840
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12841
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12842
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12843
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12844
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12845
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12846
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12847
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12848
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12849
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12850
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12851
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12852
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12853
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12854
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12855
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12856
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12857
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12858
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12859
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12860
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12861
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12862
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12863
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12864
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12865
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12866
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12867
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12868
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12869
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12870
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12871
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12872
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12873
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12874
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12875
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12876
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12877
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12878
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12879
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12880
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12881
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12882
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12883
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12884
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12885
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12886
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12887
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12888
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12889
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12890
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12891
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12892
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12893
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12894
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12895
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12896
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12897
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12898
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12899
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12900
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12901
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12902
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12903
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12904
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12905
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12906
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12907
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12908
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12909
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12910
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12911
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12912
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12913
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12914
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12915
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12916
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12917
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12918
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12919
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12920
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12921
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12922
    }/*function_add*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12923
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12924
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12925
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12926
 *MUL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12927
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12928
    case function_mul :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12929
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12930
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12931
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12932
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12933
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12934
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12935
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12936
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12937
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12938
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12939
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12940
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12941
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12942
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12943
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12944
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12945
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12946
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12947
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12948
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12949
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12950
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12951
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12952
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12953
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12954
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12955
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12956
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12957
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12958
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12959
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12960
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12961
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12962
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12963
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12964
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12965
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12966
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12967
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12968
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12969
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12970
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12971
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12972
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12973
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12974
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12975
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12976
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12977
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12978
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12979
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12980
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12981
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12982
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12983
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12984
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12985
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12986
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12987
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12988
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12989
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12990
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12991
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12992
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12993
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12994
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12995
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12996
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12997
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12998
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12999
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13000
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13001
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13002
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13003
    }/*function_mul*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13004
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13005
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13006
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13007
 *SUB
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13008
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13009
    case function_sub :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13010
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13011
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13012
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13013
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13014
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13015
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13016
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13017
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13018
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13019
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13020
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13021
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13022
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13023
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13024
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13025
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13026
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13027
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13028
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13029
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13030
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13031
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13032
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13033
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13034
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13035
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13036
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13037
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13038
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13039
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13040
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13041
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13042
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13043
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13044
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13045
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13046
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13047
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13048
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13049
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13050
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13051
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13052
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13053
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13054
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13055
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13056
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13057
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13058
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13059
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13060
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13061
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13062
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13063
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13064
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13065
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13066
                    if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13067
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13068
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13069
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13070
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13071
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13072
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13073
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13074
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13075
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13076
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13077
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13078
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13079
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13080
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13081
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13082
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13083
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13084
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13085
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13086
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13087
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13088
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13089
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13090
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13091
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13092
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13093
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13094
                    if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13095
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13096
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13097
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13098
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13099
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13100
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13101
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13102
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13103
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13104
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13105
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13106
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13107
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13108
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13109
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13110
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13111
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13112
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13113
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13114
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13115
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13116
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13117
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13118
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13119
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13120
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13121
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13122
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13123
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13124
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13125
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13126
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13127
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13128
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13129
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13130
                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13131
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13132
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13133
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13134
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13135
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13136
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13137
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13138
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13139
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13140
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13141
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13142
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13143
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13144
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13145
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13146
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13147
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13148
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13149
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13150
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13151
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13152
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13153
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13154
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13155
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13156
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13157
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13158
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13159
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13160
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13161
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13162
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13163
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13164
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13165
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13166
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13167
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13168
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13169
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13170
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13171
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13172
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13173
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13174
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13175
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13176
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13177
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13178
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13179
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13180
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13181
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13182
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13183
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13184
    }/*function_sub*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13185
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13186
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13187
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13188
 *DIV
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13189
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13190
    case function_div :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13191
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13192
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13193
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13194
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13195
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13196
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13197
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13198
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13199
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13200
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13201
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13202
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13203
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13204
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13205
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13206
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13207
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13208
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13209
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13210
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13211
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13212
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13213
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13214
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13215
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13216
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13217
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13218
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13219
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13220
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13221
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13222
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13223
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13224
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13225
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13226
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13227
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13228
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13229
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13230
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13231
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13232
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13233
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13234
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13235
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13236
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13237
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13238
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13239
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13240
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13241
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13242
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13243
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13244
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13245
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13246
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13247
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13248
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13249
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13250
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13251
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13252
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13253
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13254
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13255
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13256
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13257
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13258
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13259
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13260
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13261
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13262
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13263
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13264
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13265
    }/*function_div*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13266
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13267
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13268
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13269
 *MOD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13270
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13271
    case function_mod :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13272
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13273
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13274
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13275
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13276
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13277
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13278
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13279
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13280
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13281
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13282
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13283
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13284
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13285
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13286
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13287
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13288
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13289
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13290
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13291
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13292
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13293
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13294
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13295
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13296
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13297
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13298
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13299
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13300
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13301
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13302
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13303
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13304
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13305
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13306
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13307
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13308
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13309
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13310
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13311
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13312
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13313
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13314
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13315
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13316
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13317
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13318
    }/*function_mod*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13319
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13320
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13321
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13322
 *EXPT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13323
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13324
    case function_expt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13325
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13326
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13327
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13328
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13329
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13330
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13331
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13332
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13333
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13334
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13335
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13336
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13337
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13338
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13339
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13340
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13341
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13342
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13343
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13344
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13345
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13346
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13347
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13348
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13349
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13350
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13351
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13352
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13353
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13354
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13355
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13356
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13357
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13358
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13359
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13360
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13361
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13362
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13363
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13364
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13365
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13366
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13367
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13368
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13369
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13370
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13371
    }/*function_expt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13372
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13373
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13374
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13375
 *MOVE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13376
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13377
    case function_move :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13378
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13379
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13380
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13381
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13382
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13383
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13384
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13385
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13386
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13387
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13388
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13389
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13390
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13391
            
153
6aed920024f9 Modifying MOVE interface
greg
parents: 149
diff changeset
 13392
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13393
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13394
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13395
                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13396
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13397
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13398
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13399
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13400
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13401
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13402
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13403
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13404
    }/*function_move*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13405
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13406
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13407
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13408
 *SHL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13409
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13410
    case function_shl :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13411
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13412
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13413
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13414
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13415
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13416
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13417
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13418
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13419
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13420
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13421
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13422
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13423
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13424
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13425
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13426
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13427
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13428
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13429
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13430
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13431
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13432
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13433
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13434
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13435
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13436
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13437
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13438
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13439
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13440
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13441
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13442
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13443
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13444
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13445
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13446
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13447
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13448
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13449
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13450
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13451
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13452
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13453
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13454
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13455
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13456
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13457
    }/*function_shl*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13458
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13459
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13460
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13461
 *SHR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13462
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13463
    case function_shr :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13464
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13465
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13466
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13467
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13468
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13469
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13470
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13471
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13472
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13473
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13474
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13475
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13476
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13477
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13478
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13479
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13480
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13481
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13482
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13483
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13484
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13485
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13486
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13487
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13488
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13489
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13490
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13491
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13492
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13493
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13494
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13495
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13496
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13497
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13498
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13499
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13500
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13501
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13502
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13503
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13504
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13505
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13506
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13507
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13508
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13509
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13510
    }/*function_shr*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13511
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13512
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13513
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13514
 *ROR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13515
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13516
    case function_ror :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13517
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13518
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13519
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13520
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13521
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13522
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13523
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13524
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13525
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13526
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13527
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13528
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13529
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13530
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13531
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13532
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13533
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13534
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13535
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13536
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13537
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13538
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13539
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13540
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13541
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13542
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13543
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13544
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13545
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13546
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13547
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13548
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13549
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13550
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13551
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13552
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13553
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13554
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13555
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13556
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13557
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13558
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13559
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13560
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13561
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13562
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13563
    }/*function_ror*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13564
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13565
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13566
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13567
 *ROL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13568
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13569
    case function_rol :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13570
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13571
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13572
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13573
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13574
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13575
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13576
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13577
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13578
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13579
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13580
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13581
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13582
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13583
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13584
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13585
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13586
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13587
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13588
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13589
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13590
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13591
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13592
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13593
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13594
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13595
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13596
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13597
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13598
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13599
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13600
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13601
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13602
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13603
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13604
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13605
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13606
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13607
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13608
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13609
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13610
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13611
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13612
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13613
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13614
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13615
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13616
    }/*function_rol*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13617
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13618
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13619
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13620
 *AND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13621
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13622
    case function_and :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13623
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13624
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13625
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13626
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13627
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13628
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13629
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13630
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13631
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13632
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13633
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13634
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13635
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13636
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13637
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13638
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13639
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13640
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13641
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13642
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13643
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13644
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13645
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13646
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13647
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13648
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13649
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13650
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13651
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13652
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13653
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13654
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13655
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13656
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13657
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13658
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13659
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13660
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13661
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13662
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13663
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13664
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13665
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13666
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13667
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13668
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13669
    }/*function_and*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13670
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13671
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13672
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13673
 *OR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13674
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13675
    case function_or :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13676
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13677
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13678
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13679
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13680
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13681
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13682
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13683
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13684
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13685
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13686
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13687
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13688
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13689
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13690
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13691
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13692
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13693
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13694
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13695
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13696
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13697
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13698
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13699
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13700
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13701
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13702
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13703
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13704
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13705
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13706
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13707
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13708
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13709
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13710
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13711
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13712
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13713
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13714
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13715
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13716
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13717
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13718
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13719
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13720
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13721
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13722
    }/*function_or*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13723
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13724
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13725
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13726
 *XOR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13727
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13728
    case function_xor :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13729
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13730
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13731
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13732
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13733
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13734
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13735
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13736
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13737
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13738
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13739
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13740
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13741
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13742
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13743
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13744
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13745
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13746
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13747
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13748
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13749
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13750
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13751
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13752
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13753
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13754
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13755
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13756
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13757
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13758
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13759
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13760
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13761
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13762
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13763
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13764
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13765
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13766
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13767
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13768
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13769
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13770
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13771
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13772
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13773
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13774
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13775
    }/*function_xor*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13776
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13777
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13778
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13779
 *NOT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13780
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13781
    case function_not :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13782
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13783
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13784
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13785
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13786
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13787
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13788
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13789
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13790
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13791
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13792
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13793
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13794
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13795
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13796
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13797
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13798
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13799
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13800
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13801
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13802
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13803
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13804
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13805
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13806
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13807
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13808
    }/*function_not*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13809
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13810
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13811
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13812
 *SEL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13813
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13814
    case function_sel :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13815
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13816
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13817
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13818
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13819
            identifier_c param_name("G");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13820
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13821
            symbol_c *G_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13822
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13823
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13824
            if (G_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13825
              G_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13826
            symbol_c *G_type_symbol = search_expression_type->get_type(G_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13827
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13828
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13829
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13830
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13831
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13832
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13833
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13834
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13835
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13836
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13837
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13838
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13839
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13840
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13841
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13842
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13843
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13844
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13845
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13846
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13847
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13848
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13849
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13850
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13851
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13852
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13853
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13854
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13855
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13856
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13857
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13858
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13859
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13860
                                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13861
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13862
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13863
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13864
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13865
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13866
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13867
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13868
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13869
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13870
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13871
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13872
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13873
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13874
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13875
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13876
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13877
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13878
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13879
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13880
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13881
    }/*function_sel*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13882
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13883
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13884
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13885
 *MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13886
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13887
    case function_max :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13888
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13889
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13890
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13891
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13892
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13893
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13894
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13895
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13896
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13897
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13898
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13899
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13900
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13901
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13902
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13903
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13904
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13905
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13906
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13907
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13908
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13909
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13910
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13911
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13912
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13913
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13914
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13915
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13916
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13917
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13918
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13919
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13920
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13921
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13922
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13923
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13924
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13925
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13926
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13927
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13928
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13929
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13930
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13931
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13932
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13933
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13934
    }/*function_max*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13935
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13936
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13937
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13938
 *MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13939
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13940
    case function_min :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13941
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13942
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13943
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13944
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13945
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13946
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13947
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13948
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13949
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13950
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13951
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13952
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13953
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13954
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13955
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13956
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13957
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13958
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13959
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13960
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13961
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13962
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13963
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13964
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13965
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13966
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13967
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13968
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13969
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13970
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13971
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13972
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13973
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13974
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13975
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13976
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13977
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13978
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13979
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13980
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13981
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13982
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13983
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13984
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13985
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13986
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13987
    }/*function_min*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13988
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13989
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13990
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13991
 *LIMIT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13992
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13993
    case function_limit :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13994
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13995
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13996
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13997
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13998
            identifier_c param_name("MN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13999
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14000
            symbol_c *MN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14001
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14002
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14003
            if (MN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14004
              MN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14005
            symbol_c *MN_type_symbol = search_expression_type->get_type(MN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14006
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14007
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14008
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14009
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14010
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14011
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14012
                    identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14013
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14014
                    symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14015
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14016
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14017
                    if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14018
                      IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14019
                    symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14020
                    last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14021
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14022
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14023
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14024
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14025
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14026
                            identifier_c param_name("MX");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14027
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14028
                            symbol_c *MX_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14029
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14030
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14031
                            if (MX_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14032
                              MX_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14033
                            symbol_c *MX_type_symbol = search_expression_type->get_type(MX_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14034
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14035
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14036
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14037
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14038
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14039
                                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14040
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14041
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14042
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14043
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14044
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14045
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14046
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14047
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14048
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14049
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14050
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14051
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14052
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14053
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14054
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14055
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14056
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14057
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14058
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14059
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14060
    }/*function_limit*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14061
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14062
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14063
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14064
 *MUX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14065
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14066
    case function_mux :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14067
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14068
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14069
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14070
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14071
            identifier_c param_name("K");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14072
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14073
            symbol_c *K_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14074
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14075
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14076
            if (K_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14077
              K_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14078
            symbol_c *K_type_symbol = search_expression_type->get_type(K_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14079
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14080
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14081
            if(search_expression_type->is_integer_type(K_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14082
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14083
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14084
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14085
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14086
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14087
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14088
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14089
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14090
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14091
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14092
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14093
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14094
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14095
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14096
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14097
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14098
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14099
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14100
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14101
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14102
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14103
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14104
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14105
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14106
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14107
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14108
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14109
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14110
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14111
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14112
                                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14113
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14114
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14115
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14116
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14117
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14118
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14119
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14120
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14121
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14122
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14123
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14124
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14125
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14126
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14127
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14128
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14129
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14130
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14131
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14132
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14133
    }/*function_mux*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14134
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14135
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14136
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14137
 *GT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14138
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14139
    case function_gt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14140
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14141
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14142
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14143
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14144
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14145
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14146
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14147
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14148
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14149
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14150
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14151
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14152
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14153
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14154
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14155
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14156
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14157
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14158
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14159
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14160
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14161
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14162
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14163
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14164
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14165
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14166
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14167
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14168
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14169
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14170
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14171
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14172
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14173
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14174
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14175
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14176
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14177
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14178
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14179
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14180
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14181
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14182
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14183
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14184
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14185
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14186
    }/*function_gt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14187
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14188
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14189
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14190
 *GE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14191
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14192
    case function_ge :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14193
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14194
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14195
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14196
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14197
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14198
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14199
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14200
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14201
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14202
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14203
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14204
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14205
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14206
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14207
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14208
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14209
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14210
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14211
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14212
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14213
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14214
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14215
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14216
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14217
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14218
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14219
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14220
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14221
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14222
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14223
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14224
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14225
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14226
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14227
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14228
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14229
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14230
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14231
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14232
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14233
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14234
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14235
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14236
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14237
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14238
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14239
    }/*function_ge*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14240
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14241
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14242
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14243
 *EQ
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14244
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14245
    case function_eq :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14246
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14247
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14248
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14249
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14250
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14251
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14252
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14253
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14254
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14255
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14256
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14257
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14258
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14259
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14260
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14261
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14262
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14263
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14264
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14265
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14266
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14267
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14268
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14269
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14270
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14271
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14272
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14273
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14274
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14275
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14276
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14277
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14278
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14279
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14280
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14281
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14282
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14283
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14284
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14285
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14286
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14287
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14288
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14289
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14290
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14291
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14292
    }/*function_eq*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14293
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14294
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14295
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14296
 *LT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14297
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14298
    case function_lt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14299
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14300
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14301
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14302
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14303
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14304
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14305
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14306
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14307
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14308
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14309
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14310
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14311
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14312
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14313
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14314
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14315
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14316
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14317
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14318
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14319
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14320
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14321
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14322
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14323
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14324
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14325
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14326
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14327
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14328
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14329
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14330
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14331
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14332
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14333
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14334
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14335
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14336
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14337
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14338
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14339
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14340
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14341
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14342
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14343
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14344
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14345
    }/*function_lt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14346
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14347
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14348
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14349
 *LE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14350
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14351
    case function_le :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14352
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14353
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14354
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14355
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14356
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14357
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14358
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14359
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14360
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14361
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14362
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14363
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14364
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14365
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14366
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14367
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14368
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14369
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14370
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14371
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14372
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14373
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14374
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14375
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14376
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14377
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14378
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14379
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14380
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14381
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14382
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14383
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14384
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14385
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14386
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14387
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14388
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14389
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14390
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14391
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14392
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14393
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14394
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14395
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14396
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14397
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14398
    }/*function_le*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14399
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14400
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14401
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14402
 *NE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14403
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14404
    case function_ne :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14405
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14406
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14407
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14408
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14409
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14410
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14411
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14412
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14413
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14414
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14415
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14416
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14417
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14418
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14419
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14420
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14421
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14422
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14423
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14424
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14425
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14426
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14427
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14428
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14429
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14430
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14431
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14432
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14433
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14434
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14435
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14436
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14437
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14438
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14439
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14440
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14441
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14442
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14443
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14444
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14445
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14446
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14447
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14448
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14449
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14450
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14451
    }/*function_ne*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14452
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14453
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14454
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14455
 *LEN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14456
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14457
    case function_len :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14458
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14459
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14460
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14461
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14462
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14463
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14464
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14465
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14466
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14467
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14468
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14469
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14470
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14471
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14472
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14473
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14474
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14475
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14476
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14477
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14478
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14479
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14480
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14481
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14482
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14483
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14484
    }/*function_len*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14485
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14486
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14487
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14488
 *LEFT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14489
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14490
    case function_left :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14491
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14492
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14493
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14494
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14495
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14496
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14497
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14498
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14499
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14500
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14501
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14502
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14503
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14504
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14505
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14506
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14507
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14508
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14509
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14510
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14511
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14512
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14513
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14514
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14515
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14516
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14517
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14518
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14519
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14520
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14521
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14522
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14523
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14524
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14525
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14526
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14527
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14528
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14529
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14530
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14531
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14532
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14533
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14534
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14535
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14536
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14537
    }/*function_left*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14538
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14539
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14540
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14541
 *RIGHT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14542
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14543
    case function_right :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14544
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14545
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14546
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14547
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14548
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14549
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14550
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14551
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14552
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14553
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14554
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14555
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14556
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14557
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14558
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14559
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14560
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14561
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14562
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14563
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14564
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14565
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14566
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14567
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14568
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14569
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14570
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14571
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14572
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14573
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14574
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14575
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14576
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14577
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14578
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14579
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14580
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14581
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14582
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14583
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14584
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14585
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14586
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14587
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14588
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14589
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14590
    }/*function_right*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14591
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14592
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14593
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14594
 *MID
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14595
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14596
    case function_mid :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14597
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14598
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14599
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14600
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14601
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14602
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14603
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14604
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14605
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14606
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14607
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14608
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14609
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14610
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14611
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14612
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14613
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14614
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14615
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14616
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14617
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14618
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14619
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14620
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14621
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14622
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14623
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14624
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14625
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14626
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14627
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14628
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14629
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14630
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14631
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14632
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14633
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14634
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14635
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14636
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14637
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14638
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14639
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14640
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14641
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14642
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14643
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14644
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14645
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14646
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14647
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14648
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14649
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14650
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14651
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14652
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14653
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14654
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14655
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14656
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14657
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14658
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14659
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14660
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14661
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14662
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14663
    }/*function_mid*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14664
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14665
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14666
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14667
 *CONCAT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14668
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14669
    case function_concat :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14670
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14671
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14672
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14673
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14674
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14675
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14676
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14677
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14678
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14679
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14680
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14681
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14682
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14683
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14684
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14685
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14686
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14687
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14688
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14689
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14690
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14691
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14692
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14693
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14694
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14695
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14696
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14697
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14698
                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14699
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14700
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14701
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14702
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14703
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14704
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14705
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14706
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14707
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14708
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14709
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14710
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14711
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14712
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14713
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14714
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14715
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14716
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14717
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14718
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14719
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14720
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14721
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14722
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14723
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14724
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14725
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14726
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14727
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14728
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14729
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14730
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14731
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14732
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14733
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14734
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14735
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14736
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14737
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14738
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14739
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14740
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14741
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14742
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14743
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14744
    }/*function_concat*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14745
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14746
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14747
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14748
 *INSERT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14749
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14750
    case function_insert :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14751
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14752
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14753
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14754
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14755
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14756
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14757
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14758
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14759
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14760
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14761
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14762
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14763
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14764
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14765
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14766
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14767
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14768
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14769
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14770
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14771
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14772
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14773
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14774
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14775
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14776
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14777
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14778
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14779
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14780
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14781
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14782
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14783
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14784
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14785
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14786
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14787
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14788
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14789
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14790
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14791
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14792
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14793
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14794
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14795
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14796
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14797
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14798
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14799
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14800
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14801
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14802
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14803
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14804
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14805
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14806
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14807
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14808
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14809
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14810
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14811
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14812
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14813
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14814
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14815
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14816
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14817
    }/*function_insert*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14818
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14819
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14820
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14821
 *DELETE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14822
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14823
    case function_delete :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14824
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14825
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14826
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14827
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14828
            identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14829
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14830
            symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14831
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14832
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14833
            if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14834
              IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14835
            symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14836
            last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14837
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14838
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14839
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14840
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14841
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14842
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14843
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14844
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14845
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14846
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14847
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14848
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14849
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14850
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14851
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14852
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14853
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14854
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14855
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14856
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14857
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14858
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14859
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14860
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14861
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14862
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14863
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14864
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14865
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14866
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14867
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14868
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14869
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14870
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14871
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14872
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14873
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14874
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14875
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14876
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14877
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14878
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14879
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14880
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14881
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14882
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14883
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14884
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14885
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14886
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14887
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14888
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14889
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14890
    }/*function_delete*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14891
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14892
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14893
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14894
 *REPLACE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14895
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14896
    case function_replace :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14897
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14898
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14899
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14900
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14901
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14902
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14903
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14904
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14905
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14906
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14907
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14908
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14909
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14910
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14911
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14912
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14913
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14914
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14915
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14916
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14917
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14918
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14919
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14920
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14921
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14922
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14923
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14924
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14925
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14926
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14927
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14928
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14929
                            identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14930
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14931
                            symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14932
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14933
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14934
                            if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14935
                              L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14936
                            symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14937
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14938
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14939
                            if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14940
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14941
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14942
                                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14943
                                    identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14944
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14945
                                    symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14946
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14947
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14948
                                    if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14949
                                      P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14950
                                    symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14951
                                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14952
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14953
                                    if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14954
                                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14955
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14956
                                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14957
                                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14958
                                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14959
                                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14960
                                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14961
                                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14962
                                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14963
                                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14964
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14965
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14966
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14967
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14968
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14969
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14970
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14971
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14972
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14973
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14974
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14975
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14976
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14977
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14978
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14979
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14980
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14981
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14982
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14983
    }/*function_replace*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14984
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14985
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14986
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14987
 *FIND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14988
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14989
    case function_find :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14990
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14991
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14992
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14993
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14994
            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14995
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14996
            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14997
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14998
            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14999
            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15000
              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15001
            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15002
            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15003
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15004
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15005
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15006
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15007
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15008
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15009
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15010
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15011
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15012
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15013
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15014
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15015
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15016
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15017
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15018
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15019
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15020
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15021
                        symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15022
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15023
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15024
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15025
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15026
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15027
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15028
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15029
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15030
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15031
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15032
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15033
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15034
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15035
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15036
    }/*function_find*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15037
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15038
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15039
    case function_none :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15040
    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15041
  }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15042
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15043
}
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15044
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15045
void *compute_standard_function_il(il_function_call_c *symbol, symbol_c *param_data_type) {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15046
  
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15047
  function_type_t current_function_type = get_function_type((identifier_c *)symbol->function_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15048
  function_call_param_iterator_c function_call_param_iterator(symbol);  
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15049
  search_expression_type_c* search_expression_type = this;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15050
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15051
  switch(current_function_type){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15052
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 15053
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15054
 *REAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15055
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15056
    case function_real_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15057
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15058
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15059
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15060
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15061
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15062
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15063
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15064
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15065
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15066
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15067
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15068
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15069
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15070
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15071
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15072
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15073
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15074
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15075
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15076
    }/*function_real_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15077
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15078
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15079
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15080
 *REAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15081
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15082
    case function_real_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15083
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15084
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15085
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15086
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15087
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15088
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15090
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15091
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15092
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15093
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15094
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15095
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15096
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15098
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15099
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15100
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15101
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15102
    }/*function_real_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15103
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15104
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15105
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15106
 *REAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15107
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15108
    case function_real_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15109
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15110
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15111
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15112
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15113
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15114
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15115
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15116
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15117
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15118
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15119
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15120
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15121
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15122
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15123
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15124
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15125
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15126
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15127
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15128
    }/*function_real_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15129
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15130
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15131
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15132
 *REAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15133
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15134
    case function_real_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15135
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15136
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15137
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15138
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15139
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15140
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15142
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15143
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15144
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15145
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15146
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15147
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15148
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15149
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15150
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15151
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15152
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15153
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15154
    }/*function_real_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15155
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15156
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15157
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15158
 *REAL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15159
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15160
    case function_real_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15161
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15162
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15163
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15164
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15165
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15166
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15167
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15168
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15169
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15170
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15171
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15172
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15173
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15174
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15175
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15176
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15177
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15178
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15179
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15180
    }/*function_real_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15181
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15182
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15183
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15184
 *REAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15185
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15186
    case function_real_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15187
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15188
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15189
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15190
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15191
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15192
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15193
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15194
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15195
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15196
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15197
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15198
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15199
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15200
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15201
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15202
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15203
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15204
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15205
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15206
    }/*function_real_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15207
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15208
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15209
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15210
 *REAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15211
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15212
    case function_real_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15213
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15214
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15215
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15216
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15217
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15218
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15219
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15220
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15221
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15222
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15223
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15224
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15225
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15226
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15228
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15229
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15230
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15231
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15232
    }/*function_real_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15233
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15234
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15235
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15236
 *REAL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15237
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15238
    case function_real_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15239
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15240
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15241
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15242
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15243
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15244
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15245
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15246
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15247
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15248
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15249
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15250
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15251
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15252
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15254
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15255
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15256
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15257
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15258
    }/*function_real_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15259
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15260
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15261
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15262
 *REAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15263
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15264
    case function_real_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15265
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15266
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15267
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15268
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15269
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15270
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15271
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15272
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15273
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15274
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15275
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15276
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15277
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15278
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15279
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15280
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15281
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15282
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15283
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15284
    }/*function_real_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15285
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15286
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15287
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15288
 *REAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15289
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15290
    case function_real_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15291
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15292
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15293
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15294
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15295
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15296
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15298
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15299
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15301
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15302
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15303
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15304
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15305
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15306
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15307
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15308
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15309
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15310
    }/*function_real_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15311
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15312
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15313
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15314
 *REAL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15315
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15316
    case function_real_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15317
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15318
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15319
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15320
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15321
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15322
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15323
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15324
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15325
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15326
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15327
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15328
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15329
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15330
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15331
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15332
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15333
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15334
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15335
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15336
    }/*function_real_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15337
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15338
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15339
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15340
 *REAL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15341
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15342
    case function_real_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15343
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15344
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15345
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15346
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15347
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15348
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15349
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15350
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15351
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15352
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15353
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15354
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15355
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15356
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15357
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15358
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15359
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15360
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15361
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15362
    }/*function_real_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15363
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15364
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15365
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15366
 *REAL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15367
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15368
    case function_real_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15369
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15370
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15371
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15372
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15373
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15374
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15375
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15376
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15377
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15378
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15379
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15380
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15381
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15382
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15383
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15384
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15385
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15386
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15387
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15388
    }/*function_real_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15389
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15390
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15391
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15392
 *REAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15393
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15394
    case function_real_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15395
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15396
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15397
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15398
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15399
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15400
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15401
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15402
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15403
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15404
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15405
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15406
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15407
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15408
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15409
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15410
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15411
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15412
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15413
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15414
    }/*function_real_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15415
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15416
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15417
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15418
 *REAL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15419
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15420
    case function_real_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15421
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15422
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15423
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15424
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15425
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15426
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15427
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15428
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15429
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15430
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15431
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15432
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15433
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15434
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15435
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15436
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15437
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15438
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15439
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15440
    }/*function_real_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15441
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15442
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15443
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15444
 *REAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15445
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15446
    case function_real_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15447
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15448
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15449
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15450
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15451
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15452
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15454
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15455
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15456
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15457
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15458
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15459
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15460
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15461
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15462
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15463
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15464
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15465
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15466
    }/*function_real_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15467
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15468
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15469
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15470
 *REAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15471
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15472
    case function_real_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15473
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15474
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15475
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15476
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15477
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15478
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15479
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15480
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15481
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15482
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15483
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15484
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15485
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15486
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15487
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15488
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15489
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15490
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15491
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15492
    }/*function_real_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15493
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15494
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15495
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15496
 *REAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15497
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15498
    case function_real_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15499
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15500
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15501
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15502
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15503
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15504
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15505
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15506
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15507
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15508
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15509
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15510
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15511
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15512
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15513
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15514
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15515
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15516
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15517
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15518
    }/*function_real_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15519
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15520
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15521
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15522
 *REAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15523
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15524
    case function_real_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15525
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15526
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15527
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15528
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15529
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15530
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15531
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15532
            if(search_expression_type->is_same_type(&search_constant_type_c::real_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15533
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15534
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15535
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15536
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15537
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15538
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15539
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15540
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15541
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15542
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15543
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15544
    }/*function_real_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15545
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15546
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15547
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15548
 *SINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15549
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15550
    case function_sint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15551
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15552
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15553
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15554
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15555
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15556
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15557
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15558
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15559
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15560
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15561
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15562
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15563
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15564
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15566
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15567
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15568
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15569
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15570
    }/*function_sint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15571
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15572
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15573
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15574
 *SINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15575
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15576
    case function_sint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15577
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15578
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15579
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15580
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15581
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15582
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15583
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15584
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15585
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15586
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15587
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15588
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15589
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15590
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15591
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15592
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15593
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15594
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15595
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15596
    }/*function_sint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15597
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15598
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15599
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15600
 *SINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15601
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15602
    case function_sint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15603
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15604
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15605
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15606
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15607
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15608
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15610
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15611
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15612
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15613
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15614
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15615
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15616
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15617
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15618
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15619
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15620
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15621
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15622
    }/*function_sint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15623
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15624
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15625
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15626
 *SINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15627
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15628
    case function_sint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15629
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15630
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15631
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15632
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15633
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15634
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15635
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15636
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15637
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15638
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15639
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15640
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15641
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15642
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15643
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15644
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15645
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15646
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15647
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15648
    }/*function_sint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15649
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15650
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15651
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15652
 *SINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15653
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15654
    case function_sint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15655
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15656
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15657
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15658
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15659
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15660
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15661
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15662
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15663
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15664
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15665
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15666
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15667
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15668
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15669
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15670
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15671
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15672
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15673
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15674
    }/*function_sint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15675
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15676
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15677
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15678
 *SINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15679
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15680
    case function_sint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15681
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15682
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15683
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15684
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15685
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15686
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15687
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15688
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15689
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15690
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15691
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15692
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15693
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15694
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15695
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15696
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15697
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15698
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15699
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15700
    }/*function_sint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15701
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15702
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15703
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15704
 *SINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15705
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15706
    case function_sint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15707
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15708
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15709
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15710
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15711
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15712
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15713
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15714
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15715
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15716
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15717
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15718
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15719
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15720
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15721
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15722
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15723
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15724
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15725
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15726
    }/*function_sint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15727
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15728
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15729
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15730
 *SINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15731
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15732
    case function_sint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15733
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15734
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15735
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15736
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15737
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15738
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15739
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15740
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15741
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15742
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15743
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15744
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15745
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15746
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15747
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15748
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15749
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15750
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15751
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15752
    }/*function_sint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15753
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15754
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15755
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15756
 *SINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15757
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15758
    case function_sint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15759
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15760
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15761
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15762
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15763
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15764
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15766
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15767
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15769
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15770
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15771
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15772
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15773
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15774
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15775
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15776
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15777
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15778
    }/*function_sint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15779
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15780
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15781
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15782
 *SINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15783
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15784
    case function_sint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15785
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15786
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15787
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15788
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15789
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15790
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15791
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15792
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15793
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15794
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15795
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15796
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15797
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15798
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15799
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15800
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15801
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15802
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15803
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15804
    }/*function_sint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15805
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15806
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15807
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15808
 *SINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15809
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15810
    case function_sint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15811
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15812
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15813
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15814
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15815
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15816
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15817
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15818
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15819
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15820
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15821
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15822
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15823
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15824
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15825
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15826
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15827
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15828
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15829
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15830
    }/*function_sint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15831
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15832
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15833
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15834
 *SINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15835
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15836
    case function_sint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15837
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15838
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15839
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15840
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15841
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15842
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15843
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15844
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15845
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15846
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15847
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15848
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15849
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15850
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15851
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15852
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15853
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15854
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15855
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15856
    }/*function_sint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15857
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15858
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15859
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15860
 *SINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15861
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15862
    case function_sint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15863
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15864
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15865
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15866
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15867
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15868
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15869
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15870
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15871
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15872
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15873
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15874
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15875
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15876
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15877
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15878
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15879
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15880
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15881
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15882
    }/*function_sint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15883
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15884
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15885
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15886
 *SINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15887
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15888
    case function_sint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15889
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15890
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15891
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15892
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15893
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15894
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15895
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15896
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15897
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15898
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15899
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15900
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15901
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15902
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15903
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15904
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15905
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15906
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15907
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15908
    }/*function_sint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15909
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15910
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15911
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15912
 *SINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15913
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15914
    case function_sint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15915
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15916
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15917
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15918
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15919
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15920
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15921
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15922
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15923
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15924
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15925
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15926
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15927
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15928
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15929
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15930
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15931
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15932
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15933
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15934
    }/*function_sint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15935
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15936
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15937
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15938
 *SINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15939
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15940
    case function_sint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15941
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15942
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15943
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15944
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15945
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15946
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15947
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15948
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15949
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15950
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15951
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15952
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15953
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15954
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15955
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15956
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15957
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15958
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15959
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15960
    }/*function_sint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15961
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15962
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15963
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15964
 *SINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15965
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15966
    case function_sint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15967
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15968
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15969
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15970
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15971
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15972
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15973
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15974
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15975
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15976
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15977
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15978
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15979
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15980
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15982
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15983
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15984
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15985
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15986
    }/*function_sint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15987
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15988
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15989
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15990
 *SINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15991
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15992
    case function_sint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15993
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15994
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15995
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15996
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15997
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15998
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 15999
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16000
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16001
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16002
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16003
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16004
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16005
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16006
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16007
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16009
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16010
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16011
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16012
    }/*function_sint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16013
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16014
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16015
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16016
 *SINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16017
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16018
    case function_sint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16019
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16020
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16021
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16022
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16023
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16024
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16025
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16026
            if(search_expression_type->is_same_type(&search_constant_type_c::sint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16027
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16028
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16029
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16030
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16031
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16032
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16033
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16034
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16035
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16036
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16037
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16038
    }/*function_sint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16039
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16040
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16041
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16042
 *LINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16043
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16044
    case function_lint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16045
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16046
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16047
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16048
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16049
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16050
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16051
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16052
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16053
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16054
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16055
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16056
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16057
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16058
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16059
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16060
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16061
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16062
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16063
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16064
    }/*function_lint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16065
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16066
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16067
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16068
 *LINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16069
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16070
    case function_lint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16071
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16072
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16073
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16074
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16075
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16076
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16078
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16079
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16080
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16081
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16082
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16083
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16084
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16085
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16086
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16087
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16088
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16089
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16090
    }/*function_lint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16091
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16092
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16093
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16094
 *LINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16095
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16096
    case function_lint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16097
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16098
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16099
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16100
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16101
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16102
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16103
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16104
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16105
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16106
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16107
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16108
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16109
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16110
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16111
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16112
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16113
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16114
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16115
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16116
    }/*function_lint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16117
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16118
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16119
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16120
 *LINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16121
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16122
    case function_lint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16123
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16124
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16125
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16126
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16127
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16128
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16129
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16130
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16131
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16132
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16133
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16134
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16135
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16136
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16137
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16138
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16139
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16140
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16141
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16142
    }/*function_lint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16143
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16144
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16145
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16146
 *LINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16147
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16148
    case function_lint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16149
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16150
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16151
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16152
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16153
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16154
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16155
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16156
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16157
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16159
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16160
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16161
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16162
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16163
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16164
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16165
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16166
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16167
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16168
    }/*function_lint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16169
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16170
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16171
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16172
 *LINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16173
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16174
    case function_lint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16175
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16176
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16177
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16178
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16179
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16180
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16181
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16182
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16183
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16184
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16185
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16186
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16187
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16188
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16189
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16190
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16191
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16192
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16193
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16194
    }/*function_lint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16195
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16196
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16197
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16198
 *LINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16199
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16200
    case function_lint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16201
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16202
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16203
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16204
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16205
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16206
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16207
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16208
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16209
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16210
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16211
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16212
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16213
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16214
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16215
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16216
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16217
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16218
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16219
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16220
    }/*function_lint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16221
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16222
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16223
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16224
 *LINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16225
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16226
    case function_lint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16227
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16228
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16229
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16230
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16231
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16232
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16234
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16235
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16236
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16237
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16238
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16239
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16240
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16241
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16242
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16243
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16244
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16245
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16246
    }/*function_lint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16247
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16248
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16249
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16250
 *LINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16251
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16252
    case function_lint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16253
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16254
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16255
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16256
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16257
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16258
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16259
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16260
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16261
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16262
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16263
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16264
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16265
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16266
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16267
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16268
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16269
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16270
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16271
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16272
    }/*function_lint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16273
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16274
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16275
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16276
 *LINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16277
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16278
    case function_lint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16279
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16280
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16281
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16282
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16283
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16284
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16286
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16287
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16288
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16289
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16290
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16291
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16292
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16293
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16294
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16295
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16296
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16297
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16298
    }/*function_lint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16299
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16300
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16301
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16302
 *LINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16303
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16304
    case function_lint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16305
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16306
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16307
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16308
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16309
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16310
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16311
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16312
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16313
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16314
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16315
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16316
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16317
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16318
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16319
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16320
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16321
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16322
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16323
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16324
    }/*function_lint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16325
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16326
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16327
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16328
 *LINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16329
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16330
    case function_lint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16331
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16332
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16333
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16334
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16335
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16336
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16337
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16338
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16339
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16340
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16341
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16342
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16343
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16344
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16345
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16346
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16347
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16348
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16349
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16350
    }/*function_lint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16351
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16352
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16353
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16354
 *LINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16355
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16356
    case function_lint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16357
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16358
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16359
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16360
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16361
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16362
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16363
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16364
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16365
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16366
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16367
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16368
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16369
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16370
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16371
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16372
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16373
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16374
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16375
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16376
    }/*function_lint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16377
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16378
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16379
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16380
 *LINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16381
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16382
    case function_lint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16383
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16384
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16385
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16386
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16387
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16388
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16389
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16390
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16391
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16392
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16393
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16394
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16395
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16396
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16397
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16398
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16399
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16400
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16401
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16402
    }/*function_lint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16403
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16404
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16405
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16406
 *LINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16407
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16408
    case function_lint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16409
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16410
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16411
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16412
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16413
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16414
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16415
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16416
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16417
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16418
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16419
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16420
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16421
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16422
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16423
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16424
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16425
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16426
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16427
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16428
    }/*function_lint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16429
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16430
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16431
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16432
 *LINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16433
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16434
    case function_lint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16435
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16436
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16437
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16438
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16439
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16440
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16441
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16442
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16443
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16444
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16445
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16446
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16447
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16448
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16449
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16450
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16451
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16452
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16453
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16454
    }/*function_lint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16455
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16456
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16457
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16458
 *LINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16459
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16460
    case function_lint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16461
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16462
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16463
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16464
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16465
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16466
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16467
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16468
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16469
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16470
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16471
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16472
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16473
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16474
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16475
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16476
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16477
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16478
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16479
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16480
    }/*function_lint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16481
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16482
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16483
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16484
 *LINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16485
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16486
    case function_lint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16487
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16488
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16489
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16490
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16491
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16492
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16493
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16494
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16495
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16496
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16497
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16498
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16499
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16500
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16501
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16502
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16503
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16504
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16505
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16506
    }/*function_lint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16507
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16508
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16509
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16510
 *LINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16511
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16512
    case function_lint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16513
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16514
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16515
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16516
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16517
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16518
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16519
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16520
            if(search_expression_type->is_same_type(&search_constant_type_c::lint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16521
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16522
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16523
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16524
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16525
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16526
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16527
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16528
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16529
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16530
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16531
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16532
    }/*function_lint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16533
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16534
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16535
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16536
 *DINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16537
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16538
    case function_dint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16539
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16540
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16541
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16542
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16543
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16544
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16545
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16546
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16547
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16548
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16549
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16550
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16551
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16552
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16553
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16554
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16555
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16556
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16557
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16558
    }/*function_dint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16559
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16560
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16561
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16562
 *DINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16563
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16564
    case function_dint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16565
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16566
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16567
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16568
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16569
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16570
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16571
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16572
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16573
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16574
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16575
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16576
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16577
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16578
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16579
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16580
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16581
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16582
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16583
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16584
    }/*function_dint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16585
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16586
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16587
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16588
 *DINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16589
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16590
    case function_dint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16591
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16592
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16593
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16594
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16595
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16596
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16597
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16598
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16599
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16600
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16601
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16602
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16603
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16604
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16605
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16606
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16607
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16608
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16609
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16610
    }/*function_dint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16611
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16612
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16613
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16614
 *DINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16615
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16616
    case function_dint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16617
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16618
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16619
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16620
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16621
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16622
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16623
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16624
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16625
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16626
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16627
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16628
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16629
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16630
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16631
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16632
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16633
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16634
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16635
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16636
    }/*function_dint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16637
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16638
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16639
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16640
 *DINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16641
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16642
    case function_dint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16643
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16644
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16645
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16646
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16647
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16648
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16649
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16650
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16651
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16652
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16653
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16654
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16655
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16656
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16657
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16658
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16659
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16660
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16661
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16662
    }/*function_dint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16663
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16664
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16665
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16666
 *DINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16667
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16668
    case function_dint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16669
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16670
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16671
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16672
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16673
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16674
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16675
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16676
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16677
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16678
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16679
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16680
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16681
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16682
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16683
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16684
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16685
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16686
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16687
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16688
    }/*function_dint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16689
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16690
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16691
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16692
 *DINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16693
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16694
    case function_dint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16695
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16696
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16697
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16698
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16699
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16700
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16701
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16702
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16703
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16704
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16705
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16706
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16707
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16708
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16709
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16710
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16711
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16712
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16713
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16714
    }/*function_dint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16715
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16716
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16717
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16718
 *DINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16719
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16720
    case function_dint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16721
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16722
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16723
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16724
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16725
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16726
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16727
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16728
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16729
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16730
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16731
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16732
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16733
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16734
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16735
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16736
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16737
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16738
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16739
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16740
    }/*function_dint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16741
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16742
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16743
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16744
 *DINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16745
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16746
    case function_dint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16747
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16748
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16749
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16750
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16751
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16752
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16754
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16755
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16756
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16757
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16758
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16759
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16760
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16761
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16762
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16763
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16764
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16765
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16766
    }/*function_dint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16767
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16768
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16769
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16770
 *DINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16771
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16772
    case function_dint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16773
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16774
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16775
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16776
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16777
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16778
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16779
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16780
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16781
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16782
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16783
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16784
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16785
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16786
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16787
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16788
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16789
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16790
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16791
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16792
    }/*function_dint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16793
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16794
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16795
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16796
 *DINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16797
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16798
    case function_dint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16799
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16800
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16801
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16802
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16803
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16804
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16805
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16806
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16807
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16808
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16809
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16810
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16811
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16812
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16813
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16814
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16815
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16816
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16817
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16818
    }/*function_dint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16819
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16820
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16821
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16822
 *DINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16823
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16824
    case function_dint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16825
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16826
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16827
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16828
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16829
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16830
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16831
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16832
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16833
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16834
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16835
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16836
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16837
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16838
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16839
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16840
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16841
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16842
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16843
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16844
    }/*function_dint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16845
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16846
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16847
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16848
 *DINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16849
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16850
    case function_dint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16851
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16852
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16853
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16854
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16855
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16856
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16857
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16858
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16859
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16860
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16861
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16862
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16863
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16864
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16865
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16866
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16867
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16868
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16869
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16870
    }/*function_dint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16871
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16872
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16873
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16874
 *DINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16875
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16876
    case function_dint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16877
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16878
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16879
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16880
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16881
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16882
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16883
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16884
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16885
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16886
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16887
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16888
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16889
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16890
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16891
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16892
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16893
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16894
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16895
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16896
    }/*function_dint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16897
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16898
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16899
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16900
 *DINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16901
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16902
    case function_dint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16903
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16904
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16905
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16906
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16907
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16908
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16909
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16910
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16911
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16912
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16913
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16914
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16915
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16916
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16917
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16918
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16919
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16920
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16921
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16922
    }/*function_dint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16923
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16924
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16925
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16926
 *DINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16927
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16928
    case function_dint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16929
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16930
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16931
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16932
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16933
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16934
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16935
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16936
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16937
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16938
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16939
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16940
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16941
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16942
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16943
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16944
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16945
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16946
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16947
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16948
    }/*function_dint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16949
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16950
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16951
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16952
 *DINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16953
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16954
    case function_dint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16955
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16956
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16957
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16958
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16959
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16960
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16961
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16962
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16963
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16964
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16965
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16966
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16967
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16968
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16969
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16970
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16971
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16972
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16973
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16974
    }/*function_dint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16975
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16976
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16977
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16978
 *DINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16979
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16980
    case function_dint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16981
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16982
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16983
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16984
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16985
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16986
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16987
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16988
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16989
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16990
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16991
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16992
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16993
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16994
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16995
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16996
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16997
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16998
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 16999
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17000
    }/*function_dint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17001
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17002
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17003
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17004
 *DINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17005
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17006
    case function_dint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17007
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17008
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17009
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17010
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17011
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17012
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17013
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17014
            if(search_expression_type->is_same_type(&search_constant_type_c::dint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17015
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17016
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17017
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17018
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17019
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17020
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17021
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17022
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17023
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17024
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17025
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17026
    }/*function_dint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17027
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17028
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17029
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17030
 *DATE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17031
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17032
    case function_date_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17033
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17034
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17035
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17036
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17037
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17038
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17039
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17040
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17041
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17042
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17043
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17044
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17045
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17046
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17047
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17048
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17049
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17050
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17051
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17052
    }/*function_date_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17053
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17054
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17055
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17056
 *DATE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17057
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17058
    case function_date_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17059
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17060
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17061
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17062
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17063
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17064
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17065
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17066
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17067
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17068
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17069
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17070
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17071
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17072
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17073
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17074
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17075
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17076
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17077
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17078
    }/*function_date_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17079
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17080
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17081
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17082
 *DATE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17083
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17084
    case function_date_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17085
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17086
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17087
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17088
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17089
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17090
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17091
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17092
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17093
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17094
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17095
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17096
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17097
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17098
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17099
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17100
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17101
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17102
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17103
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17104
    }/*function_date_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17105
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17106
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17107
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17108
 *DATE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17109
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17110
    case function_date_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17111
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17112
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17113
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17114
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17115
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17116
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17117
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17118
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17119
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17120
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17121
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17122
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17123
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17124
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17125
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17126
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17127
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17128
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17129
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17130
    }/*function_date_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17131
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17132
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17133
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17134
 *DATE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17135
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17136
    case function_date_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17137
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17138
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17139
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17140
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17141
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17142
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17143
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17144
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17145
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17146
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17147
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17148
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17149
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17150
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17151
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17152
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17153
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17154
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17155
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17156
    }/*function_date_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17157
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17158
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17159
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17160
 *DATE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17161
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17162
    case function_date_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17163
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17164
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17165
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17166
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17167
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17168
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17169
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17170
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17171
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17172
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17173
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17174
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17175
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17176
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17177
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17178
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17179
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17180
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17181
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17182
    }/*function_date_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17183
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17184
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17185
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17186
 *DATE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17187
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17188
    case function_date_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17189
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17190
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17191
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17192
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17193
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17194
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17195
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17196
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17197
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17198
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17199
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17200
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17201
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17202
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17203
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17204
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17205
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17206
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17207
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17208
    }/*function_date_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17209
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17210
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17211
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17212
 *DATE_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17213
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17214
    case function_date_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17215
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17216
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17217
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17218
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17219
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17220
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17221
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17222
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17223
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17224
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17225
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17226
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17227
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17228
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17229
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17230
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17231
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17232
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17233
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17234
    }/*function_date_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17235
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17236
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17237
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17238
 *DATE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17239
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17240
    case function_date_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17241
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17242
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17243
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17244
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17245
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17246
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17247
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17248
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17249
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17250
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17251
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17252
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17253
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17254
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17255
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17256
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17257
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17258
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17259
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17260
    }/*function_date_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17261
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17262
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17263
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17264
 *DATE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17265
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17266
    case function_date_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17267
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17268
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17269
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17270
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17271
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17272
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17273
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17274
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17275
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17276
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17277
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17278
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17279
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17280
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17281
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17282
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17283
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17284
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17285
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17286
    }/*function_date_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17287
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17288
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17289
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17290
 *DATE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17291
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17292
    case function_date_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17293
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17294
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17295
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17296
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17297
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17298
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17299
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17300
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17301
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17302
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17303
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17304
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17305
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17306
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17307
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17308
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17309
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17310
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17311
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17312
    }/*function_date_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17313
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17314
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17315
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17316
 *DATE_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17317
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17318
    case function_date_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17319
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17320
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17321
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17322
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17323
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17324
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17325
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17326
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17327
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17328
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17329
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17330
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17331
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17332
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17333
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17334
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17335
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17336
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17337
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17338
    }/*function_date_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17339
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17340
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17341
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17342
 *DATE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17343
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17344
    case function_date_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17345
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17346
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17347
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17348
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17349
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17350
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17351
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17352
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17353
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17354
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17355
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17356
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17357
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17358
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17359
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17360
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17361
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17362
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17363
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17364
    }/*function_date_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17365
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17366
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17367
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17368
 *DATE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17369
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17370
    case function_date_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17371
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17372
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17373
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17374
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17375
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17376
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17377
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17378
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17379
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17380
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17381
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17382
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17383
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17384
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17385
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17386
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17387
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17388
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17389
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17390
    }/*function_date_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17391
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17392
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17393
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17394
 *DATE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17395
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17396
    case function_date_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17397
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17398
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17399
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17400
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17401
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17402
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17403
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17404
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17405
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17406
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17407
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17408
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17409
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17410
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17411
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17412
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17413
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17414
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17415
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17416
    }/*function_date_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17417
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17418
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17419
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17420
 *DWORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17421
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17422
    case function_dword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17423
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17424
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17425
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17426
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17427
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17428
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17429
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17430
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17431
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17432
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17433
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17434
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17435
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17436
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17437
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17438
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17439
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17440
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17441
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17442
    }/*function_dword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17443
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17444
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17445
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17446
 *DWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17447
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17448
    case function_dword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17449
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17450
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17451
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17452
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17453
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17454
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17455
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17456
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17457
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17458
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17459
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17460
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17461
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17462
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17463
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17464
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17465
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17466
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17467
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17468
    }/*function_dword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17469
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17470
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17471
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17472
 *DWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17473
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17474
    case function_dword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17475
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17476
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17477
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17478
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17479
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17480
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17481
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17482
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17483
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17484
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17485
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17486
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17487
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17488
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17489
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17490
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17491
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17492
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17493
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17494
    }/*function_dword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17495
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17496
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17497
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17498
 *DWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17499
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17500
    case function_dword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17501
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17502
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17503
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17504
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17505
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17506
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17507
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17508
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17509
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17510
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17511
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17512
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17513
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17514
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17515
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17516
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17517
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17518
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17519
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17520
    }/*function_dword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17521
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17522
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17523
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17524
 *DWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17525
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17526
    case function_dword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17527
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17528
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17529
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17530
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17531
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17532
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17533
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17534
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17535
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17536
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17537
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17538
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17539
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17540
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17541
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17542
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17543
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17544
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17545
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17546
    }/*function_dword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17547
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17548
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17549
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17550
 *DWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17551
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17552
    case function_dword_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17553
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17554
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17555
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17556
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17557
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17558
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17559
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17560
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17561
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17562
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17563
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17564
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17565
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17566
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17567
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17568
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17569
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17570
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17571
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17572
    }/*function_dword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17573
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17574
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17575
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17576
 *DWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17577
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17578
    case function_dword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17579
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17580
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17581
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17582
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17583
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17584
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17585
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17586
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17587
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17588
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17589
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17590
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17591
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17592
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17593
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17594
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17595
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17596
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17597
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17598
    }/*function_dword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17599
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17600
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17601
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17602
 *DWORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17603
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17604
    case function_dword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17605
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17606
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17607
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17608
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17609
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17610
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17611
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17612
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17613
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17614
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17615
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17616
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17617
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17618
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17619
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17620
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17621
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17622
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17623
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17624
    }/*function_dword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17625
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17626
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17627
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17628
 *DWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17629
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17630
    case function_dword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17631
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17632
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17633
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17634
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17635
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17636
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17637
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17638
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17639
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17640
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17641
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17642
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17643
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17644
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17645
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17646
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17647
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17648
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17649
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17650
    }/*function_dword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17651
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17652
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17653
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17654
 *DWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17655
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17656
    case function_dword_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17657
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17658
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17659
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17660
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17661
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17662
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17663
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17664
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17665
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17666
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17667
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17668
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17669
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17670
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17671
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17672
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17673
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17674
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17675
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17676
    }/*function_dword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17677
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17678
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17679
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17680
 *DWORD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17681
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17682
    case function_dword_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17683
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17684
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17685
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17686
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17687
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17688
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17689
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17690
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17691
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17692
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17693
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17694
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17695
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17696
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17697
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17698
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17699
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17700
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17701
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17702
    }/*function_dword_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17703
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17704
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17705
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17706
 *DWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17707
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17708
    case function_dword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17709
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17710
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17711
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17712
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17713
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17714
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17715
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17716
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17717
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17718
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17719
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17720
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17721
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17722
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17723
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17724
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17725
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17726
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17727
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17728
    }/*function_dword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17729
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17730
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17731
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17732
 *DWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17733
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17734
    case function_dword_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17735
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17736
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17737
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17738
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17739
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17740
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17741
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17742
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17743
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17744
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17745
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17746
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17747
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17748
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17749
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17750
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17751
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17752
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17753
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17754
    }/*function_dword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17755
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17756
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17757
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17758
 *DWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17759
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17760
    case function_dword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17761
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17762
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17763
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17764
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17765
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17766
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17767
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17768
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17769
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17770
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17771
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17772
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17773
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17774
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17775
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17776
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17777
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17778
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17779
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17780
    }/*function_dword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17781
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17782
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17783
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17784
 *DWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17785
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17786
    case function_dword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17787
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17788
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17789
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17790
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17791
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17792
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17793
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17794
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17795
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17796
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17797
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17798
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17799
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17800
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17801
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17802
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17803
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17804
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17805
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17806
    }/*function_dword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17807
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17808
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17809
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17810
 *DWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17811
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17812
    case function_dword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17813
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17814
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17815
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17816
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17817
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17818
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17819
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17820
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17821
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17822
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17823
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17824
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17825
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17826
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17827
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17828
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17829
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17830
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17831
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17832
    }/*function_dword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17833
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17834
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17835
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17836
 *DWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17837
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17838
    case function_dword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17839
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17840
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17841
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17842
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17843
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17844
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17845
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17846
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17847
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17848
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17849
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17850
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17851
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17852
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17853
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17854
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17855
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17856
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17857
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17858
    }/*function_dword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17859
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17860
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17861
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17862
 *DWORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17863
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17864
    case function_dword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17865
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17866
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17867
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17868
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17869
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17870
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17871
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17872
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17873
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17874
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17875
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17876
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17877
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17878
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17879
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17880
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17881
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17882
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17883
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17884
    }/*function_dword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17885
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17886
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17887
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17888
 *DWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17889
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17890
    case function_dword_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17891
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17892
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17893
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17894
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17895
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17896
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17897
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17898
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17899
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17900
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17901
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17902
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17903
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17904
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17905
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17906
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17907
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17908
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17909
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17910
    }/*function_dword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17911
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17912
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17913
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17914
 *DT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17915
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17916
    case function_dt_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17917
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17918
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17919
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17920
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17921
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17922
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17923
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17924
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17925
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17926
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17927
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17928
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17929
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17930
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17931
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17932
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17933
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17934
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17935
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17936
    }/*function_dt_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17937
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17938
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17939
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17940
 *DT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17941
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17942
    case function_dt_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17943
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17944
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17945
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17946
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17947
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17948
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17949
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17950
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17951
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17952
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17953
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17954
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17955
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17956
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17957
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17958
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17959
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17960
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17961
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17962
    }/*function_dt_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17963
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17964
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17965
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17966
 *DT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17967
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17968
    case function_dt_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17969
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17970
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17971
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17972
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17973
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17974
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17975
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17976
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17977
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17978
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17979
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17980
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17981
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17982
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17983
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17984
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17985
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17986
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17987
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17988
    }/*function_dt_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17989
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17990
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17991
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17992
 *DT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17993
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17994
    case function_dt_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17995
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17996
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17997
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17998
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 17999
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18000
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18001
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18002
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18003
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18004
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18005
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18006
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18007
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18008
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18009
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18010
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18011
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18012
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18013
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18014
    }/*function_dt_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18015
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18016
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18017
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18018
 *DT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18019
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18020
    case function_dt_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18021
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18022
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18023
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18024
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18025
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18026
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18027
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18028
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18029
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18030
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18031
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18032
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18033
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18034
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18035
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18036
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18037
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18038
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18039
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18040
    }/*function_dt_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18041
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18042
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18043
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18044
 *DT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18045
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18046
    case function_dt_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18047
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18048
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18049
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18050
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18051
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18052
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18053
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18054
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18055
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18056
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18057
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18058
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18059
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18060
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18061
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18062
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18063
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18064
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18065
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18066
    }/*function_dt_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18067
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18068
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18069
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18070
 *DT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18071
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18072
    case function_dt_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18073
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18074
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18075
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18076
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18077
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18078
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18079
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18080
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18081
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18082
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18083
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18084
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18085
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18086
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18087
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18088
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18089
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18090
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18091
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18092
    }/*function_dt_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18093
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18094
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18095
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18096
 *DT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18097
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18098
    case function_dt_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18099
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18100
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18101
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18102
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18103
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18104
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18105
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18106
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18107
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18108
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18109
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18110
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18111
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18112
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18113
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18114
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18115
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18116
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18117
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18118
    }/*function_dt_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18119
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18120
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18121
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18122
 *DT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18123
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18124
    case function_dt_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18125
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18126
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18127
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18128
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18129
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18130
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18131
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18132
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18133
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18134
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18135
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18136
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18137
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18138
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18139
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18140
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18141
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18142
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18143
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18144
    }/*function_dt_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18145
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18146
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18147
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18148
 *DT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18149
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18150
    case function_dt_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18151
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18152
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18153
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18154
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18155
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18156
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18157
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18158
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18159
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18160
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18161
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18162
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18163
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18164
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18165
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18166
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18167
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18168
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18169
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18170
    }/*function_dt_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18171
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18172
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18173
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18174
 *DT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18175
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18176
    case function_dt_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18177
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18178
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18179
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18180
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18181
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18182
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18183
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18184
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18185
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18186
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18187
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18188
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18189
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18190
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18191
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18192
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18193
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18194
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18195
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18196
    }/*function_dt_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18197
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18198
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18199
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18200
 *DT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18201
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18202
    case function_dt_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18203
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18204
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18205
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18206
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18207
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18208
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18209
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18210
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18211
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18212
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18213
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18214
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18215
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18216
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18217
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18218
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18219
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18220
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18221
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18222
    }/*function_dt_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18223
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18224
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18225
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18226
 *DT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18227
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18228
    case function_dt_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18229
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18230
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18231
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18232
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18233
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18234
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18235
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18236
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18237
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18238
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18239
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18240
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18241
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18242
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18243
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18244
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18245
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18246
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18247
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18248
    }/*function_dt_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18249
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18250
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18251
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18252
 *DT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18253
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18254
    case function_dt_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18255
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18256
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18257
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18258
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18259
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18260
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18261
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18262
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18263
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18264
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18265
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18266
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18267
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18268
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18269
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18270
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18271
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18272
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18273
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18274
    }/*function_dt_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18275
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18276
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18277
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18278
 *DT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18279
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18280
    case function_dt_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18281
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18282
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18283
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18284
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18285
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18286
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18288
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18289
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18290
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18291
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18292
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18293
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18294
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18295
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18296
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18297
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18298
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18299
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18300
    }/*function_dt_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18301
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18302
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18303
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18304
 *TOD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18305
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18306
    case function_tod_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18307
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18308
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18310
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18311
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18312
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18313
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18314
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18315
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18316
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18317
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18318
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18319
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18320
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18321
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18322
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18323
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18324
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18325
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18326
    }/*function_tod_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18327
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18328
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18329
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18330
 *TOD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18331
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18332
    case function_tod_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18333
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18334
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18335
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18336
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18337
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18338
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18339
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18340
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18341
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18342
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18343
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18344
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18345
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18346
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18347
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18348
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18349
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18350
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18351
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18352
    }/*function_tod_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18353
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18354
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18355
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18356
 *TOD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18357
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18358
    case function_tod_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18359
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18360
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18361
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18362
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18363
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18364
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18365
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18366
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18367
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18368
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18369
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18370
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18371
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18372
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18373
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18374
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18375
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18376
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18377
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18378
    }/*function_tod_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18379
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18380
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18381
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18382
 *TOD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18383
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18384
    case function_tod_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18385
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18386
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18387
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18388
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18389
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18390
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18391
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18392
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18393
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18394
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18395
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18396
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18397
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18398
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18399
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18400
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18401
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18402
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18403
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18404
    }/*function_tod_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18405
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18406
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18407
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18408
 *TOD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18409
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18410
    case function_tod_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18411
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18412
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18413
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18414
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18415
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18416
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18417
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18418
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18419
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18420
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18421
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18422
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18423
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18424
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18425
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18426
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18427
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18428
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18429
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18430
    }/*function_tod_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18431
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18432
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18433
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18434
 *TOD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18435
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18436
    case function_tod_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18437
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18438
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18439
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18440
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18441
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18442
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18443
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18444
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18445
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18446
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18447
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18448
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18449
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18450
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18451
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18452
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18453
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18454
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18455
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18456
    }/*function_tod_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18457
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18458
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18459
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18460
 *TOD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18461
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18462
    case function_tod_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18463
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18464
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18465
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18466
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18467
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18468
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18469
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18470
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18471
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18472
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18473
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18474
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18475
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18476
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18477
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18478
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18479
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18480
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18481
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18482
    }/*function_tod_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18483
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18484
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18485
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18486
 *TOD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18487
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18488
    case function_tod_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18489
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18490
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18491
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18492
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18493
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18494
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18496
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18497
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18498
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18499
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18500
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18501
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18502
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18504
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18505
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18506
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18507
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18508
    }/*function_tod_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18509
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18510
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18511
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18512
 *TOD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18513
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18514
    case function_tod_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18515
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18516
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18517
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18518
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18519
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18520
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18521
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18522
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18523
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18524
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18525
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18526
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18527
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18528
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18529
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18530
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18531
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18532
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18533
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18534
    }/*function_tod_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18535
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18536
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18537
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18538
 *TOD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18539
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18540
    case function_tod_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18541
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18542
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18543
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18544
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18545
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18546
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18547
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18548
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18549
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18550
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18551
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18552
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18553
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18554
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18555
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18556
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18557
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18558
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18559
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18560
    }/*function_tod_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18561
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18562
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18563
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18564
 *TOD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18565
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18566
    case function_tod_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18567
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18568
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18569
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18570
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18571
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18572
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18573
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18574
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18575
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18576
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18577
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18578
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18579
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18580
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18581
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18582
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18583
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18584
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18585
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18586
    }/*function_tod_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18587
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18588
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18589
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18590
 *TOD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18591
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18592
    case function_tod_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18593
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18594
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18595
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18596
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18597
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18598
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18599
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18600
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18601
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18602
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18603
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18604
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18605
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18606
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18607
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18608
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18609
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18610
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18611
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18612
    }/*function_tod_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18613
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18614
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18615
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18616
 *TOD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18617
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18618
    case function_tod_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18619
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18620
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18621
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18622
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18623
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18624
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18625
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18626
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18627
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18628
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18629
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18630
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18631
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18632
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18633
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18634
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18635
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18636
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18637
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18638
    }/*function_tod_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18639
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18640
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18641
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18642
 *TOD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18643
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18644
    case function_tod_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18645
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18646
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18647
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18648
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18649
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18650
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18651
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18652
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18653
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18654
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18655
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18656
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18657
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18658
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18660
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18661
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18662
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18664
    }/*function_tod_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18665
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18666
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18667
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18668
 *TOD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18669
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18670
    case function_tod_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18671
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18672
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18673
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18674
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18675
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18676
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18677
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18678
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18679
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18680
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18681
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18682
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18683
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18684
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18685
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18686
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18687
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18688
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18689
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18690
    }/*function_tod_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18691
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18692
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18693
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18694
 *UDINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18695
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18696
    case function_udint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18697
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18698
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18699
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18700
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18701
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18702
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18703
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18704
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18705
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18706
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18707
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18708
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18709
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18710
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18711
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18712
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18713
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18714
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18715
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18716
    }/*function_udint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18717
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18718
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18719
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18720
 *UDINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18721
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18722
    case function_udint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18723
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18724
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18725
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18726
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18727
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18728
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18729
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18730
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18731
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18732
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18733
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18734
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18735
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18736
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18737
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18738
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18739
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18740
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18741
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18742
    }/*function_udint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18743
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18744
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18745
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18746
 *UDINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18747
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18748
    case function_udint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18749
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18750
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18751
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18752
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18753
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18754
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18755
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18756
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18757
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18758
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18759
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18760
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18761
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18762
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18763
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18764
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18765
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18766
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18767
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18768
    }/*function_udint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18769
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18770
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18771
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18772
 *UDINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18773
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18774
    case function_udint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18775
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18776
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18777
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18778
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18779
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18780
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18781
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18782
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18783
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18784
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18785
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18786
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18787
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18788
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18789
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18790
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18791
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18792
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18793
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18794
    }/*function_udint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18795
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18796
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18797
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18798
 *UDINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18799
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18800
    case function_udint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18801
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18802
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18803
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18804
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18805
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18806
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18807
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18808
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18809
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18810
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18811
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18812
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18813
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18814
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18815
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18816
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18817
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18818
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18819
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18820
    }/*function_udint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18821
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18822
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18823
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18824
 *UDINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18825
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18826
    case function_udint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18827
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18828
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18829
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18830
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18831
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18832
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18833
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18834
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18835
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18836
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18837
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18838
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18839
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18840
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18841
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18842
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18843
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18844
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18845
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18846
    }/*function_udint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18847
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18848
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18849
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18850
 *UDINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18851
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18852
    case function_udint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18853
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18854
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18855
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18856
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18857
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18858
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18860
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18861
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18862
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18863
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18864
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18865
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18866
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18867
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18868
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18869
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18870
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18871
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18872
    }/*function_udint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18873
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18874
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18875
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18876
 *UDINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18877
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18878
    case function_udint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18879
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18880
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18881
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18882
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18883
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18884
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18885
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18886
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18887
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18888
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18889
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18890
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18891
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18892
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18893
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18894
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18895
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18896
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18897
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18898
    }/*function_udint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18899
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18900
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18901
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18902
 *UDINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18903
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18904
    case function_udint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18905
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18906
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18907
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18908
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18909
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18910
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18911
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18912
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18913
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18914
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18915
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18916
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18917
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18918
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18919
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18920
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18921
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18922
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18923
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18924
    }/*function_udint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18925
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18926
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18927
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18928
 *UDINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18929
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18930
    case function_udint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18931
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18932
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18933
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18934
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18935
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18936
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18937
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18938
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18939
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18940
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18941
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18942
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18943
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18944
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18945
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18946
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18947
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18948
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18949
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18950
    }/*function_udint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18951
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18952
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18953
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18954
 *UDINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18955
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18956
    case function_udint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18957
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18958
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18959
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18960
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18961
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18962
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18963
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18964
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18965
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18966
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18967
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18968
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18969
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18970
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18971
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18972
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18973
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18974
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18975
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18976
    }/*function_udint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18977
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18978
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18979
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18980
 *UDINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18981
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18982
    case function_udint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18983
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18984
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18985
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18986
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18987
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18988
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18989
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18990
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18991
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18992
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18993
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18994
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18995
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18996
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18997
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18998
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 18999
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19000
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19001
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19002
    }/*function_udint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19003
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19004
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19005
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19006
 *UDINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19007
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19008
    case function_udint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19009
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19010
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19011
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19012
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19013
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19014
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19015
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19016
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19017
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19018
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19019
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19020
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19021
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19022
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19023
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19024
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19025
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19026
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19027
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19028
    }/*function_udint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19029
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19030
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19031
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19032
 *UDINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19033
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19034
    case function_udint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19035
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19036
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19037
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19038
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19039
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19040
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19041
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19042
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19043
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19044
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19045
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19046
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19047
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19048
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19049
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19050
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19051
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19052
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19053
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19054
    }/*function_udint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19055
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19056
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19057
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19058
 *UDINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19059
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19060
    case function_udint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19061
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19062
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19063
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19064
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19065
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19066
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19067
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19068
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19069
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19070
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19071
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19072
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19073
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19074
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19075
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19076
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19077
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19078
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19079
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19080
    }/*function_udint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19081
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19082
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19083
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19084
 *UDINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19085
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19086
    case function_udint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19087
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19088
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19089
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19090
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19091
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19092
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19093
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19094
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19095
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19096
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19097
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19098
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19099
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19100
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19101
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19102
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19103
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19104
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19105
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19106
    }/*function_udint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19107
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19108
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19109
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19110
 *UDINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19111
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19112
    case function_udint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19113
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19114
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19115
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19116
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19117
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19118
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19120
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19121
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19122
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19123
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19124
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19125
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19126
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19127
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19128
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19129
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19130
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19131
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19132
    }/*function_udint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19133
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19134
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19135
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19136
 *UDINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19137
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19138
    case function_udint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19139
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19140
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19141
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19142
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19143
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19144
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19145
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19146
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19147
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19148
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19149
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19150
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19151
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19152
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19153
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19155
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19156
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19157
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19158
    }/*function_udint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19159
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19160
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19161
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19162
 *UDINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19163
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19164
    case function_udint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19165
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19166
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19167
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19168
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19169
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19170
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19171
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19172
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19173
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19174
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19175
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19176
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19177
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19178
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19179
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19180
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19181
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19182
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19183
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19184
    }/*function_udint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19185
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19186
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19187
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19188
 *WORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19189
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19190
    case function_word_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19191
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19192
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19193
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19194
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19195
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19196
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19197
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19198
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19199
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19200
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19201
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19202
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19203
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19204
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19205
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19206
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19207
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19208
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19209
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19210
    }/*function_word_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19211
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19212
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19213
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19214
 *WORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19215
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19216
    case function_word_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19217
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19218
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19219
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19220
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19221
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19222
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19223
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19224
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19225
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19226
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19227
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19228
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19229
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19230
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19231
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19232
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19233
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19234
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19235
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19236
    }/*function_word_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19237
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19238
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19239
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19240
 *WORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19241
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19242
    case function_word_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19243
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19244
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19245
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19246
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19247
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19248
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19249
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19250
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19251
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19252
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19253
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19254
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19255
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19256
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19257
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19258
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19259
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19260
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19261
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19262
    }/*function_word_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19263
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19264
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19265
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19266
 *WORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19267
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19268
    case function_word_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19269
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19270
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19271
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19272
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19273
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19274
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19275
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19276
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19277
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19278
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19279
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19280
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19281
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19282
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19283
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19284
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19285
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19286
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19287
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19288
    }/*function_word_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19289
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19290
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19291
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19292
 *WORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19293
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19294
    case function_word_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19295
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19296
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19297
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19298
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19299
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19300
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19301
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19302
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19303
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19304
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19305
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19306
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19307
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19308
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19309
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19310
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19311
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19312
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19313
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19314
    }/*function_word_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19315
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19316
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19317
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19318
 *WORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19319
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19320
    case function_word_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19321
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19322
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19323
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19324
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19325
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19326
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19327
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19328
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19329
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19330
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19331
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19332
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19333
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19334
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19335
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19336
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19337
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19338
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19339
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19340
    }/*function_word_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19341
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19342
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19343
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19344
 *WORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19345
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19346
    case function_word_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19347
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19348
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19349
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19350
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19351
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19352
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19353
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19354
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19355
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19356
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19357
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19358
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19359
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19360
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19361
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19362
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19363
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19364
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19365
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19366
    }/*function_word_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19367
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19368
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19369
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19370
 *WORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19371
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19372
    case function_word_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19373
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19374
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19375
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19376
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19377
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19378
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19379
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19380
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19381
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19382
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19383
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19384
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19385
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19386
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19387
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19388
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19389
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19390
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19391
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19392
    }/*function_word_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19393
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19394
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19395
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19396
 *WORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19397
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19398
    case function_word_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19399
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19400
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19401
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19402
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19403
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19404
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19406
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19407
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19408
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19409
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19410
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19411
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19412
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19413
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19414
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19415
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19416
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19417
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19418
    }/*function_word_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19419
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19420
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19421
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19422
 *WORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19423
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19424
    case function_word_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19425
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19426
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19427
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19428
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19429
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19430
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19431
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19432
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19433
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19434
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19435
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19436
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19437
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19438
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19439
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19440
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19441
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19442
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19443
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19444
    }/*function_word_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19445
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19446
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19447
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19448
 *WORD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19449
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19450
    case function_word_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19451
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19452
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19453
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19454
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19455
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19456
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19457
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19458
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19459
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19460
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19461
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19462
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19463
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19464
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19465
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19466
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19467
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19468
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19469
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19470
    }/*function_word_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19471
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19472
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19473
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19474
 *WORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19475
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19476
    case function_word_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19477
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19478
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19479
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19480
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19481
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19482
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19483
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19484
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19485
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19486
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19487
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19488
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19489
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19490
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19491
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19492
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19493
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19494
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19495
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19496
    }/*function_word_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19497
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19498
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19499
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19500
 *WORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19501
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19502
    case function_word_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19503
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19504
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19505
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19506
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19507
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19508
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19509
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19510
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19511
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19512
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19513
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19514
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19515
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19516
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19517
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19518
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19519
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19520
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19521
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19522
    }/*function_word_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19523
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19524
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19525
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19526
 *WORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19527
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19528
    case function_word_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19529
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19530
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19531
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19532
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19533
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19534
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19535
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19536
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19537
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19538
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19539
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19540
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19541
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19542
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19543
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19544
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19545
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19546
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19547
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19548
    }/*function_word_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19549
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19550
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19551
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19552
 *WORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19553
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19554
    case function_word_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19555
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19556
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19557
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19558
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19559
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19560
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19561
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19562
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19563
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19564
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19565
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19566
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19567
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19568
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19569
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19570
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19571
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19572
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19573
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19574
    }/*function_word_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19575
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19576
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19577
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19578
 *WORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19579
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19580
    case function_word_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19581
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19582
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19583
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19584
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19585
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19586
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19587
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19588
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19589
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19590
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19591
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19592
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19593
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19594
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19595
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19596
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19597
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19598
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19599
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19600
    }/*function_word_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19601
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19602
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19603
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19604
 *WORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19605
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19606
    case function_word_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19607
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19608
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19609
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19610
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19611
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19612
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19613
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19614
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19615
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19616
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19617
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19618
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19619
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19620
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19621
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19622
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19623
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19624
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19625
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19626
    }/*function_word_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19627
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19628
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19629
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19630
 *WORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19631
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19632
    case function_word_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19633
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19634
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19635
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19636
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19637
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19638
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19639
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19640
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19641
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19642
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19643
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19644
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19645
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19646
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19647
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19648
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19649
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19650
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19651
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19652
    }/*function_word_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19653
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19654
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19655
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19656
 *WORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19657
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19658
    case function_word_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19659
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19660
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19661
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19662
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19663
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19664
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19665
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19666
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19667
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19668
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19669
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19670
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19671
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19672
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19673
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19674
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19675
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19676
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19677
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19678
    }/*function_word_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19679
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19680
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19681
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19682
 *STRING_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19683
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19684
    case function_string_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19685
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19686
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19687
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19688
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19689
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19690
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19692
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19693
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19694
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19695
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19696
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19697
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19698
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19699
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19700
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19701
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19702
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19703
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19704
    }/*function_string_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19705
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19706
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19707
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19708
 *STRING_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19709
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19710
    case function_string_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19711
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19712
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19713
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19714
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19715
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19716
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19717
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19718
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19719
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19720
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19721
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19722
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19723
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19724
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19725
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19726
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19727
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19728
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19729
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19730
    }/*function_string_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19731
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19732
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19733
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19734
 *STRING_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19735
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19736
    case function_string_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19737
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19738
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19739
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19740
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19741
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19742
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19743
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19744
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19745
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19746
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19747
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19748
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19749
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19750
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19751
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19752
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19753
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19754
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19755
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19756
    }/*function_string_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19757
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19758
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19759
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19760
 *STRING_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19761
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19762
    case function_string_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19763
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19764
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19765
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19766
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19767
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19768
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19769
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19770
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19771
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19772
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19773
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19774
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19775
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19776
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19777
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19778
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19779
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19780
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19781
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19782
    }/*function_string_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19783
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19784
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19785
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19786
 *STRING_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19787
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19788
    case function_string_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19789
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19790
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19791
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19792
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19793
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19794
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19795
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19796
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19797
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19798
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19799
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19800
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19801
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19802
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19803
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19804
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19805
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19806
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19807
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19808
    }/*function_string_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19809
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19810
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19811
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19812
 *STRING_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19813
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19814
    case function_string_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19815
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19816
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19817
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19818
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19819
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19820
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19821
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19822
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19823
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19824
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19825
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19826
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19827
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19828
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19829
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19830
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19831
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19832
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19833
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19834
    }/*function_string_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19835
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19836
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19837
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19838
 *STRING_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19839
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19840
    case function_string_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19841
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19842
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19843
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19844
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19845
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19846
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19847
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19848
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19849
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19850
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19851
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19852
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19853
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19854
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19855
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19856
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19857
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19858
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19859
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19860
    }/*function_string_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19861
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19862
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19863
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19864
 *STRING_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19865
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19866
    case function_string_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19867
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19868
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19869
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19870
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19871
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19872
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19873
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19874
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19875
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19876
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19877
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19878
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19879
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19880
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19881
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19882
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19883
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19884
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19885
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19886
    }/*function_string_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19887
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19888
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19889
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19890
 *STRING_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19891
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19892
    case function_string_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19893
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19894
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19895
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19896
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19897
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19898
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19899
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19900
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19901
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19902
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19903
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19904
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19905
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19906
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19907
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19908
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19909
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19910
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19911
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19912
    }/*function_string_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19913
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19914
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19915
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19916
 *STRING_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19917
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19918
    case function_string_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19919
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19920
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19921
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19922
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19923
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19924
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19925
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19926
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19927
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19928
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19929
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19930
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19931
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19932
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19933
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19934
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19935
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19936
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19937
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19938
    }/*function_string_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19939
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19940
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19941
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19942
 *STRING_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19943
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19944
    case function_string_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19945
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19946
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19947
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19948
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19949
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19950
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19951
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19952
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19953
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19954
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19955
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19956
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19957
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19958
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19959
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19960
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19961
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19962
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19963
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19964
    }/*function_string_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19965
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19966
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19967
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19968
 *STRING_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19969
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19970
    case function_string_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19971
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19972
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19973
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19974
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19975
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19976
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19977
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19978
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19979
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19980
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19981
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19982
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19983
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19984
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19985
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19986
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19987
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19988
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19989
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19990
    }/*function_string_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19991
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19992
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19993
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19994
 *STRING_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19995
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19996
    case function_string_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19997
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19998
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 19999
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20000
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20001
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20002
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20003
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20004
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20005
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20006
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20007
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20008
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20009
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20010
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20011
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20012
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20013
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20014
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20015
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20016
    }/*function_string_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20017
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20018
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20019
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20020
 *STRING_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20021
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20022
    case function_string_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20023
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20024
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20025
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20026
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20027
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20028
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20029
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20030
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20031
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20032
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20033
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20034
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20035
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20036
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20037
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20038
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20039
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20040
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20041
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20042
    }/*function_string_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20043
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20044
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20045
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20046
 *STRING_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20047
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20048
    case function_string_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20049
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20050
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20051
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20052
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20053
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20054
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20055
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20056
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20057
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20058
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20059
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20060
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20061
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20062
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20063
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20064
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20065
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20066
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20067
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20068
    }/*function_string_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20069
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20070
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20071
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20072
 *STRING_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20073
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20074
    case function_string_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20075
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20076
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20077
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20078
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20079
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20080
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20081
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20082
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20083
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20084
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20085
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20086
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20087
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20088
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20090
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20091
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20092
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20093
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20094
    }/*function_string_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20095
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20096
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20097
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20098
 *STRING_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20099
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20100
    case function_string_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20101
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20102
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20103
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20104
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20105
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20106
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20107
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20108
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20109
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20110
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20111
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20112
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20113
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20114
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20115
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20116
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20117
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20118
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20119
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20120
    }/*function_string_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20121
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20122
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20123
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20124
 *STRING_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20125
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20126
    case function_string_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20127
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20128
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20129
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20130
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20131
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20132
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20133
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20134
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20135
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20136
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20137
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20138
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20139
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20140
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20142
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20143
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20144
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20145
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20146
    }/*function_string_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20147
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20148
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20149
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20150
 *STRING_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20151
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20152
    case function_string_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20153
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20154
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20155
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20156
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20157
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20158
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20160
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20161
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20162
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20163
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20164
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20165
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20166
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20167
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20168
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20169
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20170
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20171
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20172
    }/*function_string_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20173
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20174
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20175
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20176
 *LWORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20177
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20178
    case function_lword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20179
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20180
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20181
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20182
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20183
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20184
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20185
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20186
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20187
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20188
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20189
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20190
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20191
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20192
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20193
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20194
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20195
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20196
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20197
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20198
    }/*function_lword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20199
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20200
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20201
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20202
 *LWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20203
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20204
    case function_lword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20205
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20206
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20207
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20208
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20209
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20210
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20211
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20212
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20213
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20214
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20215
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20216
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20217
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20218
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20219
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20220
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20221
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20222
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20223
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20224
    }/*function_lword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20225
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20226
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20227
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20228
 *LWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20229
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20230
    case function_lword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20231
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20232
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20234
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20235
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20236
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20237
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20238
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20239
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20240
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20241
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20242
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20243
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20244
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20245
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20246
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20247
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20248
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20249
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20250
    }/*function_lword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20251
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20252
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20253
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20254
 *LWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20255
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20256
    case function_lword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20257
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20258
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20259
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20260
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20261
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20262
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20263
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20264
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20265
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20266
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20267
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20268
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20269
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20270
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20271
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20272
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20273
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20274
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20275
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20276
    }/*function_lword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20277
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20278
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20279
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20280
 *LWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20281
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20282
    case function_lword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20283
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20284
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20285
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20286
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20287
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20288
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20289
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20290
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20291
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20292
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20293
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20294
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20295
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20296
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20298
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20299
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20300
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20301
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20302
    }/*function_lword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20303
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20304
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20305
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20306
 *LWORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20307
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20308
    case function_lword_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20309
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20310
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20311
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20312
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20313
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20314
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20315
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20316
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20317
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20318
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20319
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20320
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20321
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20322
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20323
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20324
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20325
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20326
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20327
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20328
    }/*function_lword_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20329
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20330
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20331
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20332
 *LWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20333
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20334
    case function_lword_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20335
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20336
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20337
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20338
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20339
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20340
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20341
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20342
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20343
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20344
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20345
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20346
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20347
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20348
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20349
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20350
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20351
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20352
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20353
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20354
    }/*function_lword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20355
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20356
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20357
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20358
 *LWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20359
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20360
    case function_lword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20361
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20362
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20363
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20364
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20365
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20366
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20367
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20368
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20369
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20370
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20371
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20372
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20373
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20374
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20375
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20376
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20377
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20378
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20379
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20380
    }/*function_lword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20381
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20382
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20383
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20384
 *LWORD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20385
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20386
    case function_lword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20387
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20388
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20389
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20390
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20391
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20392
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20393
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20394
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20395
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20396
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20397
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20398
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20399
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20400
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20401
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20402
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20403
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20404
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20405
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20406
    }/*function_lword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20407
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20408
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20409
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20410
 *LWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20411
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20412
    case function_lword_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20413
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20414
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20415
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20416
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20417
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20418
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20419
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20420
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20421
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20422
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20423
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20424
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20425
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20426
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20427
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20428
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20429
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20430
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20431
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20432
    }/*function_lword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20433
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20434
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20435
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20436
 *LWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20437
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20438
    case function_lword_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20439
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20440
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20441
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20442
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20443
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20444
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20445
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20446
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20447
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20448
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20449
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20450
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20451
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20452
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20454
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20455
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20456
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20457
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20458
    }/*function_lword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20459
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20460
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20461
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20462
 *LWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20463
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20464
    case function_lword_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20465
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20466
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20467
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20468
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20469
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20470
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20471
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20472
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20473
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20474
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20475
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20476
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20477
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20478
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20479
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20480
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20481
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20482
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20483
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20484
    }/*function_lword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20485
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20486
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20487
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20488
 *LWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20489
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20490
    case function_lword_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20491
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20492
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20493
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20494
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20495
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20496
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20497
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20498
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20499
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20500
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20501
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20502
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20503
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20504
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20505
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20506
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20507
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20508
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20509
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20510
    }/*function_lword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20511
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20512
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20513
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20514
 *LWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20515
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20516
    case function_lword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20517
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20518
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20519
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20520
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20521
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20522
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20523
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20524
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20525
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20526
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20527
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20528
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20529
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20530
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20531
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20532
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20533
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20534
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20535
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20536
    }/*function_lword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20537
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20538
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20539
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20540
 *LWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20541
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20542
    case function_lword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20543
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20544
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20545
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20546
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20547
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20548
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20549
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20550
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20551
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20552
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20553
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20554
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20555
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20556
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20557
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20558
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20559
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20560
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20561
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20562
    }/*function_lword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20563
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20564
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20565
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20566
 *LWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20567
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20568
    case function_lword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20569
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20570
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20571
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20572
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20573
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20574
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20575
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20576
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20577
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20578
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20579
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20580
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20581
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20582
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20583
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20584
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20585
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20586
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20587
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20588
    }/*function_lword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20589
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20590
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20591
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20592
 *LWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20593
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20594
    case function_lword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20595
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20596
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20597
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20598
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20599
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20600
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20601
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20602
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20603
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20604
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20605
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20606
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20607
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20608
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20610
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20611
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20612
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20613
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20614
    }/*function_lword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20615
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20616
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20617
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20618
 *LWORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20619
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20620
    case function_lword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20621
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20622
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20623
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20624
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20625
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20626
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20627
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20628
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20629
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20630
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20631
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20632
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20633
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20634
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20635
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20636
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20637
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20638
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20639
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20640
    }/*function_lword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20641
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20642
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20643
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20644
 *LWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20645
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20646
    case function_lword_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20647
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20648
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20649
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20650
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20651
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20652
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20653
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20654
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20655
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20656
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20657
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20658
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20659
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20660
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20661
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20662
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20663
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20664
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20665
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20666
    }/*function_lword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20667
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20668
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20669
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20670
 *UINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20671
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20672
    case function_uint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20673
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20674
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20675
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20676
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20677
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20678
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20679
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20680
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20681
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20682
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20683
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20684
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20685
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20686
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20687
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20688
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20689
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20690
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20691
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20692
    }/*function_uint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20693
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20694
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20695
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20696
 *UINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20697
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20698
    case function_uint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20699
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20700
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20701
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20702
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20703
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20704
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20705
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20706
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20707
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20708
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20709
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20710
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20711
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20712
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20713
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20714
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20715
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20716
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20717
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20718
    }/*function_uint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20719
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20720
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20721
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20722
 *UINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20723
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20724
    case function_uint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20725
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20726
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20727
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20728
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20729
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20730
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20731
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20732
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20733
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20734
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20735
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20736
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20737
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20738
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20739
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20740
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20741
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20742
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20743
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20744
    }/*function_uint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20745
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20746
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20747
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20748
 *UINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20749
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20750
    case function_uint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20751
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20752
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20753
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20754
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20755
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20756
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20757
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20758
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20759
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20760
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20761
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20762
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20763
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20764
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20766
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20767
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20768
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20769
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20770
    }/*function_uint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20771
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20772
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20773
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20774
 *UINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20775
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20776
    case function_uint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20777
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20778
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20779
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20780
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20781
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20782
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20783
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20784
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20785
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20786
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20787
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20788
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20789
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20790
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20791
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20792
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20793
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20794
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20795
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20796
    }/*function_uint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20797
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20798
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20799
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20800
 *UINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20801
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20802
    case function_uint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20803
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20804
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20805
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20806
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20807
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20808
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20809
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20810
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20811
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20812
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20813
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20814
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20815
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20816
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20817
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20818
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20819
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20820
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20821
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20822
    }/*function_uint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20823
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20824
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20825
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20826
 *UINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20827
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20828
    case function_uint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20829
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20830
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20831
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20832
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20833
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20834
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20835
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20836
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20837
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20838
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20839
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20840
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20841
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20842
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20843
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20844
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20845
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20846
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20847
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20848
    }/*function_uint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20849
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20850
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20851
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20852
 *UINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20853
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20854
    case function_uint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20855
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20856
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20857
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20858
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20859
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20860
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20861
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20862
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20863
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20864
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20865
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20866
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20867
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20868
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20869
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20870
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20871
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20872
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20873
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20874
    }/*function_uint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20875
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20876
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20877
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20878
 *UINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20879
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20880
    case function_uint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20881
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20882
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20883
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20884
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20885
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20886
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20887
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20888
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20889
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20890
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20891
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20892
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20893
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20894
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20895
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20896
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20897
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20898
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20899
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20900
    }/*function_uint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20901
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20902
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20903
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20904
 *UINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20905
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20906
    case function_uint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20907
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20908
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20909
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20910
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20911
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20912
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20913
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20914
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20915
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20916
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20917
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20918
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20919
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20920
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20921
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20922
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20923
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20924
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20925
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20926
    }/*function_uint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20927
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20928
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20929
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20930
 *UINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20931
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20932
    case function_uint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20933
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20934
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20935
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20936
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20937
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20938
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20939
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20940
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20941
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20942
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20943
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20944
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20945
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20946
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20947
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20948
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20949
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20950
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20951
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20952
    }/*function_uint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20953
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20954
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20955
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20956
 *UINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20957
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20958
    case function_uint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20959
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20960
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20961
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20962
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20963
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20964
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20965
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20966
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20967
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20968
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20969
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20970
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20971
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20972
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20973
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20974
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20975
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20976
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20977
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20978
    }/*function_uint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20979
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20980
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20981
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20982
 *UINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20983
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20984
    case function_uint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20985
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20986
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20987
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20988
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20989
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20990
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20991
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20992
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20993
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20994
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20995
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20996
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20997
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20998
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 20999
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21000
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21001
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21002
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21003
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21004
    }/*function_uint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21005
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21006
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21007
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21008
 *UINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21009
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21010
    case function_uint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21011
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21012
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21013
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21014
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21015
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21016
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21017
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21018
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21019
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21020
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21021
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21022
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21023
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21024
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21025
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21026
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21027
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21028
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21029
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21030
    }/*function_uint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21031
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21032
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21033
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21034
 *UINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21035
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21036
    case function_uint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21037
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21038
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21039
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21040
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21041
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21042
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21043
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21044
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21045
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21046
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21047
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21048
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21049
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21050
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21051
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21052
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21053
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21054
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21055
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21056
    }/*function_uint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21057
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21058
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21059
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21060
 *UINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21061
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21062
    case function_uint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21063
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21064
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21065
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21066
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21067
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21068
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21069
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21070
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21071
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21072
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21073
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21074
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21075
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21076
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21078
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21079
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21080
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21081
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21082
    }/*function_uint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21083
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21084
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21085
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21086
 *UINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21087
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21088
    case function_uint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21089
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21090
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21091
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21092
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21093
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21094
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21095
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21096
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21097
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21098
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21099
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21100
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21101
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21102
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21103
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21104
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21105
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21106
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21107
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21108
    }/*function_uint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21109
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21110
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21111
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21112
 *UINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21113
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21114
    case function_uint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21115
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21116
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21117
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21118
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21119
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21120
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21121
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21122
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21123
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21124
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21125
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21126
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21127
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21128
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21129
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21130
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21131
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21132
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21133
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21134
    }/*function_uint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21135
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21136
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21137
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21138
 *UINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21139
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21140
    case function_uint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21141
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21142
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21143
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21144
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21145
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21146
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21147
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21148
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21149
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21150
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21151
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21152
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21153
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21154
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21155
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21156
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21157
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21158
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21159
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21160
    }/*function_uint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21161
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21162
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21163
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21164
 *LREAL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21165
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21166
    case function_lreal_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21167
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21168
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21169
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21170
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21171
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21172
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21173
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21174
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21175
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21176
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21177
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21178
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21179
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21180
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21181
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21182
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21183
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21184
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21185
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21186
    }/*function_lreal_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21187
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21188
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21189
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21190
 *LREAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21191
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21192
    case function_lreal_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21193
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21194
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21195
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21196
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21197
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21198
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21199
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21200
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21201
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21202
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21203
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21204
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21205
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21206
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21207
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21208
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21209
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21210
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21211
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21212
    }/*function_lreal_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21213
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21214
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21215
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21216
 *LREAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21217
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21218
    case function_lreal_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21219
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21220
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21221
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21222
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21223
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21224
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21225
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21226
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21227
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21228
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21229
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21230
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21231
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21232
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21234
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21235
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21236
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21237
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21238
    }/*function_lreal_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21239
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21240
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21241
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21242
 *LREAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21243
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21244
    case function_lreal_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21245
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21246
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21247
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21248
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21249
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21250
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21251
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21252
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21253
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21254
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21255
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21256
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21257
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21258
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21259
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21260
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21261
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21262
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21263
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21264
    }/*function_lreal_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21265
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21266
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21267
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21268
 *LREAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21269
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21270
    case function_lreal_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21271
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21272
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21273
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21274
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21275
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21276
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21277
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21278
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21279
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21280
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21281
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21282
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21283
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21284
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21286
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21287
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21288
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21289
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21290
    }/*function_lreal_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21291
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21292
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21293
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21294
 *LREAL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21295
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21296
    case function_lreal_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21297
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21298
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21299
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21300
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21301
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21302
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21303
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21304
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21305
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21306
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21307
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21308
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21309
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21310
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21311
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21312
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21313
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21314
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21315
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21316
    }/*function_lreal_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21317
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21318
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21319
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21320
 *LREAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21321
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21322
    case function_lreal_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21323
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21324
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21325
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21326
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21327
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21328
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21329
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21330
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21331
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21332
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21333
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21334
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21335
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21336
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21337
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21338
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21339
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21340
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21341
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21342
    }/*function_lreal_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21343
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21344
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21345
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21346
 *LREAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21347
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21348
    case function_lreal_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21349
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21350
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21351
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21352
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21353
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21354
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21355
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21356
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21357
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21358
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21359
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21360
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21361
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21362
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21363
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21364
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21365
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21366
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21367
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21368
    }/*function_lreal_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21369
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21370
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21371
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21372
 *LREAL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21373
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21374
    case function_lreal_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21375
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21376
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21377
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21378
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21379
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21380
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21381
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21382
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21383
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21384
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21385
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21386
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21387
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21388
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21389
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21390
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21391
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21392
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21393
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21394
    }/*function_lreal_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21395
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21396
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21397
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21398
 *LREAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21399
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21400
    case function_lreal_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21401
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21402
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21403
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21404
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21405
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21406
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21407
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21408
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21409
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21410
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21411
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21412
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21413
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21414
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21415
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21416
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21417
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21418
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21419
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21420
    }/*function_lreal_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21421
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21422
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21423
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21424
 *LREAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21425
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21426
    case function_lreal_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21427
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21428
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21429
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21430
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21431
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21432
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21433
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21434
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21435
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21436
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21437
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21438
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21439
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21440
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21441
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21442
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21443
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21444
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21445
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21446
    }/*function_lreal_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21447
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21448
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21449
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21450
 *LREAL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21451
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21452
    case function_lreal_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21453
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21454
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21455
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21456
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21457
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21458
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21459
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21460
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21461
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21462
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21463
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21464
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21465
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21466
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21467
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21468
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21469
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21470
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21471
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21472
    }/*function_lreal_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21473
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21474
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21475
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21476
 *LREAL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21477
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21478
    case function_lreal_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21479
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21480
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21481
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21482
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21483
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21484
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21485
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21486
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21487
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21488
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21489
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21490
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21491
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21492
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21493
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21494
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21495
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21496
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21497
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21498
    }/*function_lreal_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21499
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21500
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21501
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21502
 *LREAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21503
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21504
    case function_lreal_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21505
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21506
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21507
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21508
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21509
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21510
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21511
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21512
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21513
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21514
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21515
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21516
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21517
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21518
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21519
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21520
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21521
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21522
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21523
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21524
    }/*function_lreal_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21525
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21526
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21527
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21528
 *LREAL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21529
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21530
    case function_lreal_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21531
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21532
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21533
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21534
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21535
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21536
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21537
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21538
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21539
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21540
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21541
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21542
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21543
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21544
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21545
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21546
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21547
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21548
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21549
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21550
    }/*function_lreal_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21551
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21552
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21553
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21554
 *LREAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21555
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21556
    case function_lreal_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21557
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21558
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21559
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21560
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21561
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21562
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21563
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21564
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21565
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21566
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21567
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21568
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21569
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21570
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21571
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21572
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21573
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21574
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21575
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21576
    }/*function_lreal_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21577
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21578
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21579
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21580
 *LREAL_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21581
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21582
    case function_lreal_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21583
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21584
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21585
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21586
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21587
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21588
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21589
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21590
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21591
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21592
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21593
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21594
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21595
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21596
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21597
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21598
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21599
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21600
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21601
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21602
    }/*function_lreal_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21603
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21604
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21605
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21606
 *LREAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21607
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21608
    case function_lreal_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21609
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21610
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21611
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21612
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21613
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21614
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21615
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21616
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21617
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21618
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21619
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21620
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21621
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21622
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21623
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21624
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21625
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21626
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21627
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21628
    }/*function_lreal_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21629
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21630
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21631
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21632
 *LREAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21633
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21634
    case function_lreal_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21635
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21636
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21637
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21638
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21639
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21640
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21641
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21642
            if(search_expression_type->is_same_type(&search_constant_type_c::lreal_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21643
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21644
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21645
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21646
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21647
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21648
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21649
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21650
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21651
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21652
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21653
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21654
    }/*function_lreal_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21655
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21656
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21657
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21658
 *BYTE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21659
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21660
    case function_byte_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21661
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21662
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21663
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21664
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21665
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21666
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21667
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21668
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21669
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21670
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21671
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21672
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21673
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21674
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21675
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21676
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21677
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21678
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21679
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21680
    }/*function_byte_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21681
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21682
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21683
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21684
 *BYTE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21685
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21686
    case function_byte_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21687
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21688
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21689
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21690
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21691
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21692
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21693
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21694
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21695
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21696
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21697
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21698
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21699
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21700
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21701
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21702
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21703
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21704
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21705
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21706
    }/*function_byte_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21707
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21708
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21709
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21710
 *BYTE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21711
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21712
    case function_byte_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21713
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21714
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21715
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21716
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21717
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21718
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21719
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21720
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21721
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21722
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21723
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21724
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21725
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21726
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21727
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21728
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21729
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21730
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21731
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21732
    }/*function_byte_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21733
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21734
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21735
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21736
 *BYTE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21737
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21738
    case function_byte_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21739
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21740
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21741
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21742
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21743
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21744
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21745
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21746
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21747
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21748
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21749
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21750
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21751
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21752
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21754
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21755
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21756
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21757
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21758
    }/*function_byte_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21759
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21760
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21761
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21762
 *BYTE_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21763
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21764
    case function_byte_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21765
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21766
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21767
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21768
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21769
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21770
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21771
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21772
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21773
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21774
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21775
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21776
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21777
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21778
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21779
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21780
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21781
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21782
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21783
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21784
    }/*function_byte_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21785
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21786
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21787
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21788
 *BYTE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21789
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21790
    case function_byte_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21791
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21792
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21793
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21794
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21795
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21796
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21797
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21798
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21799
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21800
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21801
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21802
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21803
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21804
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21805
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21806
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21807
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21808
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21809
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21810
    }/*function_byte_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21811
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21812
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21813
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21814
 *BYTE_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21815
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21816
    case function_byte_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21817
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21818
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21819
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21820
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21821
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21822
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21823
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21824
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21825
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21826
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21827
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21828
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21829
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21830
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21831
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21832
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21833
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21834
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21835
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21836
    }/*function_byte_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21837
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21838
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21839
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21840
 *BYTE_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21841
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21842
    case function_byte_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21843
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21844
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21845
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21846
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21847
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21848
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21849
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21850
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21851
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21852
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21853
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21854
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21855
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21856
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21857
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21858
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21859
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21860
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21861
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21862
    }/*function_byte_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21863
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21864
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21865
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21866
 *BYTE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21867
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21868
    case function_byte_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21869
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21870
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21871
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21872
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21873
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21874
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21875
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21876
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21877
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21878
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21879
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21880
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21881
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21882
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21883
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21884
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21885
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21886
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21888
    }/*function_byte_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21889
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21890
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21891
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21892
 *BYTE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21893
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21894
    case function_byte_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21895
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21896
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21897
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21898
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21899
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21900
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21901
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21902
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21903
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21904
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21905
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21906
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21907
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21908
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21909
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21910
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21911
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21912
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21913
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21914
    }/*function_byte_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21915
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21916
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21917
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21918
 *BYTE_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21919
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21920
    case function_byte_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21921
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21922
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21923
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21924
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21925
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21926
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21927
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21928
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21929
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21930
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21931
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21932
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21933
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21934
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21935
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21936
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21937
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21938
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21939
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21940
    }/*function_byte_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21941
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21942
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21943
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21944
 *BYTE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21945
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21946
    case function_byte_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21947
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21948
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21949
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21950
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21951
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21952
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21953
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21954
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21955
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21956
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21957
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21958
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21959
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21960
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21961
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21962
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21963
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21964
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21965
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21966
    }/*function_byte_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21967
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21968
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21969
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21970
 *BYTE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21971
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21972
    case function_byte_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21973
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21974
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21975
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21976
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21977
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21978
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21979
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21980
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21981
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21982
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21983
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21984
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21985
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21986
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21987
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21988
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21989
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21990
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21991
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21992
    }/*function_byte_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21993
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21994
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21995
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21996
 *BYTE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21997
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21998
    case function_byte_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 21999
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22000
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22001
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22002
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22003
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22004
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22005
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22006
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22007
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22008
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22009
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22010
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22011
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22012
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22013
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22014
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22015
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22016
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22017
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22018
    }/*function_byte_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22019
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22020
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22021
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22022
 *BYTE_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22023
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22024
    case function_byte_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22025
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22026
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22027
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22028
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22029
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22030
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22031
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22032
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22033
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22034
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22035
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22036
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22037
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22038
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22039
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22040
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22041
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22042
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22043
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22044
    }/*function_byte_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22045
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22046
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22047
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22048
 *BYTE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22049
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22050
    case function_byte_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22051
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22052
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22053
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22054
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22055
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22056
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22057
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22058
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22059
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22060
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22061
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22062
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22063
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22064
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22065
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22066
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22067
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22068
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22069
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22070
    }/*function_byte_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22071
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22072
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22073
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22074
 *BYTE_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22075
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22076
    case function_byte_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22077
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22078
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22079
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22080
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22081
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22082
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22083
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22084
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22085
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22086
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22087
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22088
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22089
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22090
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22091
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22092
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22093
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22094
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22095
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22096
    }/*function_byte_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22097
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22098
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22099
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22100
 *BYTE_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22101
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22102
    case function_byte_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22103
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22104
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22105
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22106
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22107
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22108
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22109
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22110
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22111
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22112
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22113
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22114
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22115
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22116
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22117
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22118
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22119
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22120
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22121
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22122
    }/*function_byte_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22123
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22124
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22125
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22126
 *BYTE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22127
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22128
    case function_byte_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22129
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22130
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22131
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22132
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22133
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22134
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22135
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22136
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22137
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22138
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22139
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22140
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22141
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22142
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22143
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22144
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22145
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22146
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22147
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22148
    }/*function_byte_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22149
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22150
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22151
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22152
 *USINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22153
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22154
    case function_usint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22155
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22156
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22157
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22158
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22159
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22160
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22161
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22162
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22163
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22164
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22165
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22166
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22167
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22168
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22169
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22170
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22171
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22172
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22173
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22174
    }/*function_usint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22175
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22176
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22177
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22178
 *USINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22179
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22180
    case function_usint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22181
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22182
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22183
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22184
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22185
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22186
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22187
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22188
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22189
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22190
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22191
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22192
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22193
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22194
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22195
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22196
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22197
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22198
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22199
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22200
    }/*function_usint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22201
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22202
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22203
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22204
 *USINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22205
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22206
    case function_usint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22207
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22208
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22209
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22210
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22211
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22212
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22213
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22214
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22215
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22216
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22217
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22218
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22219
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22220
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22221
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22222
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22223
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22224
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22225
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22226
    }/*function_usint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22227
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22228
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22229
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22230
 *USINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22231
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22232
    case function_usint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22233
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22234
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22235
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22236
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22237
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22238
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22239
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22240
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22241
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22242
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22243
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22244
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22245
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22246
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22247
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22248
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22249
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22250
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22251
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22252
    }/*function_usint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22253
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22254
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22255
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22256
 *USINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22257
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22258
    case function_usint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22259
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22260
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22261
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22262
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22263
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22264
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22265
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22266
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22267
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22268
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22269
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22270
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22271
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22272
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22273
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22274
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22275
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22276
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22277
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22278
    }/*function_usint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22279
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22280
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22281
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22282
 *USINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22283
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22284
    case function_usint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22285
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22286
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22287
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22288
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22289
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22290
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22291
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22292
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22293
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22294
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22295
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22296
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22297
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22298
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22299
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22300
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22301
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22302
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22303
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22304
    }/*function_usint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22305
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22306
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22307
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22308
 *USINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22309
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22310
    case function_usint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22311
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22312
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22313
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22314
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22315
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22316
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22317
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22318
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22319
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22320
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22321
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22322
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22323
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22324
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22325
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22326
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22327
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22328
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22329
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22330
    }/*function_usint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22331
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22332
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22333
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22334
 *USINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22335
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22336
    case function_usint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22337
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22338
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22339
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22340
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22341
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22342
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22343
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22344
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22345
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22346
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22347
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22348
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22349
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22350
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22351
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22352
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22353
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22354
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22355
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22356
    }/*function_usint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22357
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22358
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22359
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22360
 *USINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22361
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22362
    case function_usint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22363
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22364
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22365
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22366
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22367
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22368
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22369
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22370
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22371
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22372
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22373
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22374
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22375
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22376
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22377
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22378
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22379
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22380
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22381
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22382
    }/*function_usint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22383
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22384
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22385
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22386
 *USINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22387
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22388
    case function_usint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22389
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22390
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22391
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22392
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22393
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22394
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22395
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22396
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22397
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22398
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22399
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22400
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22401
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22402
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22403
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22404
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22405
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22406
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22407
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22408
    }/*function_usint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22409
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22410
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22411
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22412
 *USINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22413
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22414
    case function_usint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22415
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22416
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22417
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22418
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22419
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22420
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22421
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22422
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22423
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22424
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22425
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22426
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22427
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22428
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22429
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22430
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22431
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22432
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22433
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22434
    }/*function_usint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22435
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22436
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22437
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22438
 *USINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22439
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22440
    case function_usint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22441
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22442
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22443
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22444
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22445
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22446
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22447
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22448
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22449
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22450
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22451
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22452
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22453
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22454
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22455
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22456
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22457
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22458
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22459
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22460
    }/*function_usint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22461
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22462
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22463
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22464
 *USINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22465
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22466
    case function_usint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22467
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22468
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22469
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22470
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22471
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22472
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22473
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22474
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22475
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22476
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22477
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22478
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22479
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22480
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22481
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22482
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22483
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22484
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22485
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22486
    }/*function_usint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22487
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22488
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22489
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22490
 *USINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22491
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22492
    case function_usint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22493
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22494
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22495
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22496
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22497
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22498
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22499
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22500
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22501
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22502
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22503
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22504
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22505
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22506
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22507
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22508
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22509
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22510
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22511
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22512
    }/*function_usint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22513
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22514
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22515
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22516
 *USINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22517
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22518
    case function_usint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22519
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22520
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22521
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22522
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22523
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22524
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22525
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22526
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22527
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22528
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22529
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22530
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22531
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22532
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22533
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22534
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22535
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22536
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22537
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22538
    }/*function_usint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22539
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22540
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22541
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22542
 *USINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22543
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22544
    case function_usint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22545
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22546
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22547
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22548
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22549
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22550
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22551
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22552
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22553
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22554
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22555
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22556
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22557
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22558
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22559
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22560
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22561
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22562
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22563
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22564
    }/*function_usint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22565
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22566
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22567
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22568
 *USINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22569
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22570
    case function_usint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22571
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22572
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22573
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22574
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22575
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22576
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22577
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22578
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22579
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22580
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22581
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22582
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22583
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22584
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22585
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22586
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22587
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22588
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22589
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22590
    }/*function_usint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22591
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22592
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22593
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22594
 *USINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22595
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22596
    case function_usint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22597
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22598
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22599
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22600
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22601
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22602
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22603
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22604
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22605
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22606
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22607
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22608
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22609
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22610
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22611
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22612
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22613
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22614
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22615
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22616
    }/*function_usint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22617
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22618
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22619
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22620
 *USINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22621
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22622
    case function_usint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22623
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22624
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22625
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22626
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22627
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22628
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22629
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22630
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22631
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22632
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22633
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22634
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22635
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22636
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22637
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22638
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22639
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22640
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22641
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22642
    }/*function_usint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22643
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22644
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22645
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22646
 *ULINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22647
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22648
    case function_ulint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22649
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22650
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22651
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22652
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22653
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22654
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22655
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22656
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22657
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22658
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22659
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22660
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22661
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22662
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22663
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22664
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22665
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22666
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22667
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22668
    }/*function_ulint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22669
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22670
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22671
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22672
 *ULINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22673
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22674
    case function_ulint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22675
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22676
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22677
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22678
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22679
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22680
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22681
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22682
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22683
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22684
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22685
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22686
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22687
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22688
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22689
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22690
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22691
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22692
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22693
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22694
    }/*function_ulint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22695
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22696
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22697
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22698
 *ULINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22699
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22700
    case function_ulint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22701
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22702
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22703
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22704
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22705
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22706
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22707
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22708
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22709
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22710
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22711
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22712
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22713
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22714
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22715
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22716
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22717
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22718
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22719
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22720
    }/*function_ulint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22721
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22722
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22723
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22724
 *ULINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22725
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22726
    case function_ulint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22727
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22728
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22729
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22730
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22731
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22732
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22733
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22734
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22735
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22736
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22737
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22738
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22739
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22740
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22741
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22742
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22743
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22744
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22745
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22746
    }/*function_ulint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22747
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22748
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22749
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22750
 *ULINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22751
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22752
    case function_ulint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22753
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22754
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22755
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22756
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22757
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22758
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22759
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22760
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22761
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22762
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22763
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22764
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22765
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22766
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22767
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22768
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22769
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22770
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22771
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22772
    }/*function_ulint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22773
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22774
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22775
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22776
 *ULINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22777
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22778
    case function_ulint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22779
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22780
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22781
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22782
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22783
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22784
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22785
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22786
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22787
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22788
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22789
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22790
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22791
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22792
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22793
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22794
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22795
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22796
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22797
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22798
    }/*function_ulint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22799
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22800
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22801
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22802
 *ULINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22803
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22804
    case function_ulint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22805
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22806
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22807
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22808
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22809
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22810
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22811
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22812
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22813
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22814
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22815
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22816
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22817
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22818
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22819
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22820
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22821
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22822
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22823
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22824
    }/*function_ulint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22825
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22826
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22827
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22828
 *ULINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22829
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22830
    case function_ulint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22831
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22832
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22833
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22834
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22835
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22836
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22837
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22838
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22839
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22840
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22841
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22842
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22843
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22844
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22845
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22846
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22847
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22848
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22849
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22850
    }/*function_ulint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22851
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22852
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22853
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22854
 *ULINT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22855
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22856
    case function_ulint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22857
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22858
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22859
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22860
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22861
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22862
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22863
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22864
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22865
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22866
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22867
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22868
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22869
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22870
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22871
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22872
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22873
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22874
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22875
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22876
    }/*function_ulint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22877
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22878
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22879
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22880
 *ULINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22881
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22882
    case function_ulint_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22883
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22884
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22885
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22886
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22887
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22888
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22889
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22890
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22891
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22892
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22893
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22894
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22895
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22896
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22897
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22898
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22899
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22900
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22901
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22902
    }/*function_ulint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22903
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22904
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22905
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22906
 *ULINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22907
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22908
    case function_ulint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22909
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22910
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22911
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22912
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22913
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22914
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22915
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22916
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22917
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22918
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22919
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22920
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22921
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22922
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22923
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22924
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22925
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22926
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22928
    }/*function_ulint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22929
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22930
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22931
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22932
 *ULINT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22933
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22934
    case function_ulint_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22935
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22936
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22937
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22938
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22939
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22940
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22941
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22942
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22943
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22944
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22945
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22946
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22947
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22948
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22949
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22950
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22951
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22952
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22953
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22954
    }/*function_ulint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22955
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22956
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22957
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22958
 *ULINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22959
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22960
    case function_ulint_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22961
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22962
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22963
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22964
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22965
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22966
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22967
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22968
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22969
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22970
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22971
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22972
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22973
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22974
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22975
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22976
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22977
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22978
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22979
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22980
    }/*function_ulint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22981
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22982
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22983
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22984
 *ULINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22985
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22986
    case function_ulint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22987
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22988
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22989
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22990
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22991
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22992
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22993
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22994
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22995
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22996
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22997
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22998
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 22999
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23000
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23001
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23002
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23003
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23004
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23005
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23006
    }/*function_ulint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23007
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23008
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23009
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23010
 *ULINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23011
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23012
    case function_ulint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23013
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23014
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23015
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23016
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23017
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23018
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23019
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23020
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23021
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23022
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23023
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23024
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23025
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23026
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23027
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23028
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23029
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23030
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23031
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23032
    }/*function_ulint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23033
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23034
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23035
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23036
 *ULINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23037
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23038
    case function_ulint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23039
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23040
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23041
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23042
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23043
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23044
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23045
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23046
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23047
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23048
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23049
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23050
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23051
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23052
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23053
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23054
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23055
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23056
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23057
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23058
    }/*function_ulint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23059
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23060
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23061
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23062
 *ULINT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23063
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23064
    case function_ulint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23065
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23066
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23067
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23068
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23069
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23070
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23071
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23072
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23073
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23074
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23075
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23076
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23077
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23078
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23079
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23080
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23081
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23082
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23083
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23084
    }/*function_ulint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23085
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23086
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23087
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23088
 *ULINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23089
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23090
    case function_ulint_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23091
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23092
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23093
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23094
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23095
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23096
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23098
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23099
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23100
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23101
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23102
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23103
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23104
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23105
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23106
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23107
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23108
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23109
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23110
    }/*function_ulint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23111
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23112
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23113
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23114
 *ULINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23115
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23116
    case function_ulint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23117
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23118
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23119
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23120
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23121
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23122
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23123
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23124
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23125
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23126
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23127
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23128
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23129
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23130
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23131
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23132
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23133
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23134
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23135
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23136
    }/*function_ulint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23137
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23138
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23139
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23140
 *BOOL_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23141
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23142
    case function_bool_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23143
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23144
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23145
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23146
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23147
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23148
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23149
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23150
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23151
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23152
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23153
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23154
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23155
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23156
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23157
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23158
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23159
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23160
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23161
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23162
    }/*function_bool_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23163
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23164
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23165
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23166
 *BOOL_TO_SINT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23167
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23168
    case function_bool_to_sint :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23169
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23170
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23171
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23172
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23173
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23174
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23175
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23176
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23177
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23178
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23179
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23180
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23181
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23182
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23183
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23184
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23185
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23186
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23187
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23188
    }/*function_bool_to_sint*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23189
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23190
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23191
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23192
 *BOOL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23193
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23194
    case function_bool_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23195
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23196
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23197
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23198
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23199
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23200
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23201
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23202
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23203
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23204
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23205
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23206
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23207
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23208
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23209
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23210
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23211
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23212
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23213
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23214
    }/*function_bool_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23215
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23216
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23217
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23218
 *BOOL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23219
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23220
    case function_bool_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23221
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23222
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23223
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23224
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23225
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23226
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23228
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23229
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23230
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23231
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23232
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23233
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23234
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23235
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23236
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23237
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23238
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23239
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23240
    }/*function_bool_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23241
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23242
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23243
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23244
 *BOOL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23245
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23246
    case function_bool_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23247
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23248
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23249
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23250
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23251
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23252
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23254
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23255
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23256
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23257
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23258
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23259
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23260
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23261
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23262
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23263
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23264
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23265
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23266
    }/*function_bool_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23267
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23268
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23269
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23270
 *BOOL_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23271
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23272
    case function_bool_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23273
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23274
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23275
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23276
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23277
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23278
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23279
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23280
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23281
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23282
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23283
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23284
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23285
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23286
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23287
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23288
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23289
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23290
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23291
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23292
    }/*function_bool_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23293
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23294
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23295
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23296
 *BOOL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23297
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23298
    case function_bool_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23299
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23300
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23301
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23302
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23303
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23304
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23305
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23306
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23307
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23308
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23309
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23310
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23311
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23312
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23313
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23314
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23315
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23316
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23317
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23318
    }/*function_bool_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23319
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23320
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23321
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23322
 *BOOL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23323
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23324
    case function_bool_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23325
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23326
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23327
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23328
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23329
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23330
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23331
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23332
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23333
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23334
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23335
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23336
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23337
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23338
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23339
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23340
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23341
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23342
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23343
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23344
    }/*function_bool_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23345
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23346
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23347
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23348
 *BOOL_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23349
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23350
    case function_bool_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23351
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23352
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23353
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23354
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23355
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23356
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23357
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23358
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23359
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23360
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23361
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23362
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23363
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23364
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23365
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23366
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23367
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23368
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23369
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23370
    }/*function_bool_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23371
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23372
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23373
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23374
 *BOOL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23375
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23376
    case function_bool_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23377
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23378
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23379
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23380
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23381
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23382
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23383
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23384
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23385
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23386
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23387
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23388
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23389
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23390
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23391
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23392
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23393
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23394
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23395
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23396
    }/*function_bool_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23397
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23398
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23399
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23400
 *BOOL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23401
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23402
    case function_bool_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23403
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23404
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23405
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23406
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23407
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23408
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23409
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23410
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23411
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23412
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23413
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23414
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23415
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23416
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23417
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23418
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23419
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23420
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23421
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23422
    }/*function_bool_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23423
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23424
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23425
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23426
 *BOOL_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23427
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23428
    case function_bool_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23429
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23430
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23431
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23432
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23433
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23434
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23435
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23436
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23437
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23438
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23439
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23440
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23441
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23442
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23443
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23444
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23445
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23446
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23447
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23448
    }/*function_bool_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23449
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23450
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23451
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23452
 *BOOL_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23453
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23454
    case function_bool_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23455
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23456
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23457
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23458
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23459
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23460
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23461
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23462
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23463
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23464
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23465
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23466
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23467
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23468
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23469
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23470
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23471
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23472
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23473
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23474
    }/*function_bool_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23475
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23476
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23477
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23478
 *BOOL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23479
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23480
    case function_bool_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23481
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23482
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23483
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23484
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23485
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23486
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23487
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23488
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23489
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23490
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23491
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23492
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23493
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23494
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23496
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23497
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23498
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23499
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23500
    }/*function_bool_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23501
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23502
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23503
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23504
 *BOOL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23505
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23506
    case function_bool_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23507
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23508
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23509
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23510
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23511
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23512
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23513
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23514
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23515
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23516
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23517
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23518
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23519
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23520
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23521
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23522
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23523
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23524
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23525
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23526
    }/*function_bool_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23527
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23528
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23529
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23530
 *BOOL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23531
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23532
    case function_bool_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23533
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23534
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23535
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23536
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23537
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23538
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23539
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23540
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23541
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23542
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23543
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23544
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23545
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23546
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23547
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23548
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23549
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23550
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23551
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23552
    }/*function_bool_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23553
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23554
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23555
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23556
 *BOOL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23557
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23558
    case function_bool_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23559
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23560
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23561
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23562
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23563
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23564
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23566
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23567
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23568
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23569
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23570
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23571
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23572
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23573
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23574
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23575
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23576
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23577
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23578
    }/*function_bool_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23579
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23580
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23581
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23582
 *BOOL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23583
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23584
    case function_bool_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23585
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23586
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23587
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23588
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23589
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23590
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23591
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23592
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23593
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23594
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23595
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23596
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23597
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23598
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23599
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23600
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23601
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23602
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23603
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23604
    }/*function_bool_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23605
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23606
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23607
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23608
 *BOOL_TO_INT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23609
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23610
    case function_bool_to_int :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23611
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23612
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23613
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23614
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23615
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23616
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23617
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23618
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23619
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23620
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23621
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23622
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23623
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23624
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23625
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23626
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23627
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23628
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23629
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23630
    }/*function_bool_to_int*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23631
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23632
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23633
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23634
 *TIME_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23635
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23636
    case function_time_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23637
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23638
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23639
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23640
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23641
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23642
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23643
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23644
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23645
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23646
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23647
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23648
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23649
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23650
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23651
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23652
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23653
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23654
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23655
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23656
    }/*function_time_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23657
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23658
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23659
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23660
 *TIME_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23661
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23662
    case function_time_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23663
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23664
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23665
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23666
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23667
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23668
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23669
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23670
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23671
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23672
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23673
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23674
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23675
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23676
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23677
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23678
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23679
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23680
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23681
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23682
    }/*function_time_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23683
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23684
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23685
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23686
 *TIME_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23687
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23688
    case function_time_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23689
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23690
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23691
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23692
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23693
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23694
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23695
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23696
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23697
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23698
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23699
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23700
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23701
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23702
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23703
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23704
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23705
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23706
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23707
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23708
    }/*function_time_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23709
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23710
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23711
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23712
 *TIME_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23713
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23714
    case function_time_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23715
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23716
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23717
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23718
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23719
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23720
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23721
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23722
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23723
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23724
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23725
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23726
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23727
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23728
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 23729
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23730
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23731
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23732
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23733
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23734
    }/*function_time_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23735
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23736
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23737
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23738
 *TIME_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23739
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23740
    case function_time_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23741
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23742
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23743
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23744
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23745
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23746
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23747
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23748
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23749
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23750
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23751
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23752
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23753
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23754
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23755
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23756
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23757
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23758
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23759
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23760
    }/*function_time_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23761
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23762
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23763
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23764
 *TIME_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23765
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23766
    case function_time_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23767
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23768
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23769
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23770
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23771
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23772
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23773
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23774
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23775
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23776
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23777
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23778
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23779
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23780
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23781
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23782
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23783
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23784
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23785
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23786
    }/*function_time_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23787
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23788
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23789
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23790
 *TIME_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23791
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23792
    case function_time_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23793
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23794
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23795
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23796
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23797
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23798
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23799
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23800
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23801
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23802
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23803
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23804
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23805
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23806
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23807
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23808
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23809
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23810
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23811
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23812
    }/*function_time_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23813
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23814
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23815
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23816
 *TIME_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23817
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23818
    case function_time_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23819
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23820
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23821
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23822
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23823
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23824
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23825
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23826
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23827
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23828
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23829
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23830
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23831
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23832
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23833
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23834
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23835
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23836
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23837
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23838
    }/*function_time_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23839
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23840
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23841
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23842
 *TIME_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23843
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23844
    case function_time_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23845
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23846
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23847
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23848
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23849
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23850
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23851
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23852
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23853
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23854
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23855
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23856
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23857
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23858
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23860
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23861
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23862
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23863
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23864
    }/*function_time_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23865
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23866
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23867
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23868
 *TIME_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23869
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23870
    case function_time_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23871
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23872
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23873
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23874
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23875
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23876
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23877
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23878
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23879
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23880
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23881
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23882
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23883
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23884
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23885
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23886
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23887
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23888
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23889
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23890
    }/*function_time_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23891
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23892
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23893
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23894
 *TIME_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23895
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23896
    case function_time_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23897
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23898
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23899
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23900
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23901
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23902
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23903
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23904
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23905
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23906
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23907
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23908
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23909
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23910
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23911
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23912
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23913
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23914
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23915
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23916
    }/*function_time_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23917
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23918
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23919
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23920
 *TIME_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23921
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23922
    case function_time_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23923
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23924
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23925
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23926
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23927
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23928
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23929
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23930
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23931
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23932
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23933
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23934
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23935
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23936
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23937
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23938
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23939
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23940
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23941
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23942
    }/*function_time_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23943
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23944
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23945
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23946
 *TIME_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23947
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23948
    case function_time_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23949
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23950
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23951
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23952
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23953
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23954
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23955
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23956
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23957
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23958
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23959
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23960
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23961
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23962
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23963
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23964
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23965
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23966
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23967
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23968
    }/*function_time_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23969
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23970
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23971
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23972
 *TIME_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23973
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23974
    case function_time_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23975
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23976
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23977
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23978
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23979
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23980
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23981
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23982
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23983
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23984
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23985
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23986
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23987
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23988
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23989
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23990
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23991
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23992
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23993
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23994
    }/*function_time_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23995
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23996
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23997
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23998
 *TIME_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 23999
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24000
    case function_time_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24001
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24002
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24003
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24004
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24005
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24006
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24007
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24008
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24009
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24010
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24011
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24012
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24013
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24014
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24015
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24016
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24017
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24018
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24019
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24020
    }/*function_time_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24021
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24022
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24023
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24024
 *INT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24025
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24026
    case function_int_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24027
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24028
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24029
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24030
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24031
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24032
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24033
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24034
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24035
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24036
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24037
                symbol_c * return_type_symbol = &search_constant_type_c::real_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24038
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24039
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24040
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24041
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24042
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24043
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24044
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24045
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24046
    }/*function_int_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24047
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24048
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24049
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24050
 *INT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24051
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24052
    case function_int_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24053
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24054
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24055
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24056
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24057
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24058
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24059
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24060
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24061
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24062
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24063
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24064
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24065
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24066
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24067
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24068
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24069
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24070
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24071
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24072
    }/*function_int_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24073
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24074
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24075
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24076
 *INT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24077
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24078
    case function_int_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24079
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24080
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24081
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24082
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24083
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24084
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24085
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24086
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24087
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24088
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24089
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24090
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24091
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24092
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24093
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24094
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24095
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24096
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24097
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24098
    }/*function_int_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24099
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24100
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24101
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24102
 *INT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24103
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24104
    case function_int_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24105
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24106
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24107
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24108
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24109
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24110
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24111
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24112
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24113
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24114
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24115
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24116
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24117
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24118
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24121
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24122
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24123
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24124
    }/*function_int_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24125
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24126
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24127
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24128
 *INT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24129
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24130
    case function_int_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24131
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24132
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24133
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24134
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24135
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24136
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24137
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24138
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24139
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24140
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24141
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24142
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24143
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24144
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24145
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24146
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24147
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24148
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24149
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24150
    }/*function_int_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24151
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24152
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24153
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24154
 *INT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24155
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24156
    case function_int_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24157
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24158
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24159
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24160
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24161
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24162
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24163
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24164
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24165
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24166
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24167
                symbol_c * return_type_symbol = &search_constant_type_c::dword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24168
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24169
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24170
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24171
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24172
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24173
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24174
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24175
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24176
    }/*function_int_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24177
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24178
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24179
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24180
 *INT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24181
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24182
    case function_int_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24183
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24184
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24185
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24186
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24187
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24188
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24189
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24190
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24191
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24192
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24193
                symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24194
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24195
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24196
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24197
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24198
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24199
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24200
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24201
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24202
    }/*function_int_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24203
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24204
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24205
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24206
 *INT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24207
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24208
    case function_int_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24209
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24210
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24211
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24212
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24213
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24214
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24215
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24216
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24217
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24218
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24219
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24220
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24221
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24222
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24223
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24224
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24225
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24226
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24227
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24228
    }/*function_int_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24229
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24230
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24231
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24232
 *INT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24233
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24234
    case function_int_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24235
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24236
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24237
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24238
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24239
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24240
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24241
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24242
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24243
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24244
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24245
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24246
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24247
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24248
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24249
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24250
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24251
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24252
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24253
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24254
    }/*function_int_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24255
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24256
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24257
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24258
 *INT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24259
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24260
    case function_int_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24261
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24262
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24263
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24264
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24265
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24266
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24267
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24268
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24269
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24270
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24271
                symbol_c * return_type_symbol = &search_constant_type_c::word_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24272
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24273
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24274
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24275
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24276
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24277
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24278
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24279
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24280
    }/*function_int_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24281
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24282
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24283
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24284
 *INT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24285
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24286
    case function_int_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24287
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24288
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24289
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24290
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24291
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24292
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24293
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24294
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24295
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24296
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24297
                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24298
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24299
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24300
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24301
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24302
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24303
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24304
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24305
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24306
    }/*function_int_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24307
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24308
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24309
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24310
 *INT_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24311
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24312
    case function_int_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24313
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24314
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24315
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24316
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24317
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24318
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24319
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24320
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24321
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24322
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24323
                symbol_c * return_type_symbol = &search_constant_type_c::lword_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24324
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24325
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24326
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24327
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24329
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24330
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24331
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24332
    }/*function_int_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24333
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24334
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24335
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24336
 *INT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24337
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24338
    case function_int_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24339
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24340
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24341
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24342
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24343
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24344
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24345
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24346
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24347
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24348
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24349
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24350
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24351
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24352
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24353
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24354
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24355
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24356
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24357
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24358
    }/*function_int_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24359
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24360
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24361
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24362
 *INT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24363
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24364
    case function_int_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24365
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24366
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24367
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24368
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24369
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24370
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24371
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24372
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24373
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24374
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24375
                symbol_c * return_type_symbol = &search_constant_type_c::lreal_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24376
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24377
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24378
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24379
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24380
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24381
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24382
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24383
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24384
    }/*function_int_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24385
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24386
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24387
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24388
 *INT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24389
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24390
    case function_int_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24391
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24392
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24393
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24394
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24395
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24396
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24397
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24398
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24399
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24400
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24401
                symbol_c * return_type_symbol = &search_constant_type_c::byte_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24402
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24403
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24404
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24406
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24407
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24408
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24409
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24410
    }/*function_int_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24411
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24412
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24413
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24414
 *INT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24415
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24416
    case function_int_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24417
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24418
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24419
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24420
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24421
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24422
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24423
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24424
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24425
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24426
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24427
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24428
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24429
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24430
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24431
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24432
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24433
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24434
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24435
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24436
    }/*function_int_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24437
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24438
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24439
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24440
 *INT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24441
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24442
    case function_int_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24443
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24444
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24445
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24446
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24447
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24448
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24449
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24450
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24451
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24452
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24453
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24454
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24455
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24456
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24457
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24458
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24459
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24460
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24461
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24462
    }/*function_int_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24463
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24464
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24465
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24466
 *INT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24467
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24468
    case function_int_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24469
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24470
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24471
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24472
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24473
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24474
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24475
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24476
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24477
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24478
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24479
                symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24480
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24481
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24482
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24483
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24484
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24485
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24486
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24487
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24488
    }/*function_int_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24489
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24490
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24491
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24492
 *INT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24493
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24494
    case function_int_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24495
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24496
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24497
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24498
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24499
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24500
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24501
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24502
            if(search_expression_type->is_same_type(&search_constant_type_c::int_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24503
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24504
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24505
                symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24506
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24507
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24508
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24509
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24510
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24511
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24512
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24513
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24514
    }/*function_int_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24515
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24516
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24517
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24518
 *TRUNC
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24519
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24520
    case function_trunc :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24521
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24522
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24523
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24524
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24525
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24526
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24527
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24528
            if(search_expression_type->is_real_type(IN_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24529
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24530
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24531
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24532
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24533
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24534
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24535
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24536
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24537
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24538
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24539
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24540
    }/*function_trunc*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24541
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24542
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24543
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24544
 *BCD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24545
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24546
    case function_bcd_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24547
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24548
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24549
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24550
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24551
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24552
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24553
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24554
            if(search_expression_type->is_same_type(&search_constant_type_c::dword_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24555
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24556
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24557
                symbol_c * return_type_symbol = &search_constant_type_c::udint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24558
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24559
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24560
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24561
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24562
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24563
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24564
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24565
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24566
    }/*function_bcd_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24567
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24568
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24569
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24570
 *BCD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24571
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24572
    case function_bcd_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24573
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24574
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24575
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24576
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24577
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24578
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24579
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24580
            if(search_expression_type->is_same_type(&search_constant_type_c::word_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24581
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24582
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24583
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24584
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24585
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24586
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24587
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24588
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24589
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24590
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24591
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24592
    }/*function_bcd_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24593
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24594
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24595
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24596
 *BCD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24597
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24598
    case function_bcd_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24599
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24600
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24601
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24602
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24603
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24604
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24605
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24606
            if(search_expression_type->is_same_type(&search_constant_type_c::lword_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24607
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24608
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24609
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24610
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24611
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24612
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24613
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24614
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24615
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24616
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24617
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24618
    }/*function_bcd_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24619
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24620
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24621
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24622
 *BCD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24623
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24624
    case function_bcd_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24625
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24626
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24627
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24628
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24629
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24630
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24631
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24632
            if(search_expression_type->is_same_type(&search_constant_type_c::byte_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24633
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24634
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24635
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24636
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24637
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24638
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24639
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24640
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24641
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24642
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24643
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24644
    }/*function_bcd_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24645
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24646
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24647
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24648
 *UDINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24649
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24650
    case function_udint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24651
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24652
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24653
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24654
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24655
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24656
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24657
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24658
            if(search_expression_type->is_same_type(&search_constant_type_c::udint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24659
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24660
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24661
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24662
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24663
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24664
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24665
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24666
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24667
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24668
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24669
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24670
    }/*function_udint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24671
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24672
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24673
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24674
 *UINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24675
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24676
    case function_uint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24677
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24678
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24679
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24680
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24681
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24682
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24683
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24684
            if(search_expression_type->is_same_type(&search_constant_type_c::uint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24685
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24686
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24687
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24688
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24689
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24690
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24692
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24693
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24694
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24695
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24696
    }/*function_uint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24697
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24698
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24699
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24700
 *USINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24701
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24702
    case function_usint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24703
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24704
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24705
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24706
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24707
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24708
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24709
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24710
            if(search_expression_type->is_same_type(&search_constant_type_c::usint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24711
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24712
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24713
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24714
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24715
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24716
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24717
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24718
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24719
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24720
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24721
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24722
    }/*function_usint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24723
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24724
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24725
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24726
 *ULINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24727
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24728
    case function_ulint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24729
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24730
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24731
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24732
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24733
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24734
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24735
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24736
            if(search_expression_type->is_same_type(&search_constant_type_c::ulint_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24737
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24738
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24739
                symbol_c * return_type_symbol = &search_constant_type_c::constant_int_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24740
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24741
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24742
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24743
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24744
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24745
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24746
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24747
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24748
    }/*function_ulint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24749
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24750
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24751
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24752
 *DATE_AND_TIME_TO_TIME_OF_DAY
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24753
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24754
    case function_date_and_time_to_time_of_day :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24755
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24756
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24757
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24758
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24759
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24760
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24761
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24762
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24763
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24764
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24765
                symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24766
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24767
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24768
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24769
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24770
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24771
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24772
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24773
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24774
    }/*function_date_and_time_to_time_of_day*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24775
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24776
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24777
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24778
 *DATE_AND_TIME_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24779
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24780
    case function_date_and_time_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24781
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24782
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24783
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24784
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24785
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24786
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24787
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24788
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24789
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24790
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24791
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24792
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24793
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24794
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24795
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24796
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24797
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24798
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24799
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24800
    }/*function_date_and_time_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24801
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24802
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24803
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24804
 *ABS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24805
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24806
    case function_abs :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24807
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24808
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24809
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24810
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24811
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24812
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24813
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24814
            if(search_expression_type->is_num_type(IN_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24815
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24816
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24817
                symbol_c * return_type_symbol = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24818
                return return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24819
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24820
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24821
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24822
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24823
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24824
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24825
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24826
    }/*function_abs*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24827
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24828
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24829
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24830
 *SQRT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24831
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24832
    case function_sqrt :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24833
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24834
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24835
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24836
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24837
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24838
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24839
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24840
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24841
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24842
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24843
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24844
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24845
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24846
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24847
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24848
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24849
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24850
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24851
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24852
    }/*function_sqrt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24853
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24854
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24855
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24856
 *LN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24857
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24858
    case function_ln :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24859
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24860
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24861
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24862
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24863
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24864
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24865
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24866
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24867
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24868
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24869
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24870
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24871
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24872
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24873
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24874
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24875
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24876
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24877
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24878
    }/*function_ln*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24879
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24880
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24881
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24882
 *LOG
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24883
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24884
    case function_log :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24885
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24886
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24887
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24888
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24889
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24890
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24891
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24892
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24893
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24894
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24895
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24896
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24897
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24898
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24899
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24900
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24901
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24902
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24903
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24904
    }/*function_log*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24905
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24906
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24907
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24908
 *EXP
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24909
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24910
    case function_exp :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24911
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24912
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24913
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24914
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24915
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24916
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24917
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24918
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24919
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24920
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24921
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24922
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24923
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24924
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24925
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24926
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24927
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24928
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24929
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24930
    }/*function_exp*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24931
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24932
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24933
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24934
 *SIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24935
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24936
    case function_sin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24937
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24938
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24939
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24940
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24941
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24942
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24943
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24944
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24945
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24946
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24947
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24948
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24949
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24950
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24951
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24952
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24953
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24954
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24955
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24956
    }/*function_sin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24957
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24958
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24959
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24960
 *COS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24961
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24962
    case function_cos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24963
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24964
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24965
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24966
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24967
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24968
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24969
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24970
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24971
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24972
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24973
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24974
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24975
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24976
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24977
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24978
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24979
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24980
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24981
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24982
    }/*function_cos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24983
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24984
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24985
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24986
 *TAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24987
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 24988
    case function_tan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24989
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24990
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24991
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24992
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24993
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24994
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24995
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24996
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24997
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24998
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 24999
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25000
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25001
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25002
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25003
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25004
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25005
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25006
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25007
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25008
    }/*function_tan*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25009
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25010
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25011
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25012
 *ASIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25013
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25014
    case function_asin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25015
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25016
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25017
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25018
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25019
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25020
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25021
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25022
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25023
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25024
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25025
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25026
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25027
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25028
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25029
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25030
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25031
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25032
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25033
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25034
    }/*function_asin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25035
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25036
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25037
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25038
 *ACOS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25039
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25040
    case function_acos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25041
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25042
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25043
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25044
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25045
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25046
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25047
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25048
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25049
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25050
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25051
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25052
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25053
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25054
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25055
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25056
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25057
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25058
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25059
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25060
    }/*function_acos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25061
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25062
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25063
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25064
 *ATAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25065
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25066
    case function_atan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25067
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25068
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25069
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25070
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25071
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25072
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25073
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25074
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25075
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25076
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25077
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25078
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25079
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25080
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25081
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25082
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25083
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25084
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25085
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25086
    }/*function_atan*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25087
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25088
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25089
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25090
 *ADD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25091
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25092
    case function_add :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25093
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25094
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25095
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25096
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25097
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25098
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25099
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25100
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25101
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25102
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25103
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25104
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25105
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25106
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25107
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25108
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25109
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25110
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25111
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25112
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25113
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25114
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25115
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25116
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25117
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25118
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25119
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25120
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25121
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25122
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25123
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25124
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25125
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25126
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25127
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25128
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25129
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25130
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25131
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25132
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25133
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25134
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25135
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25136
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25137
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25138
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25139
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25140
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25141
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25142
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25143
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25144
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25145
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25146
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25147
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25148
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25149
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25150
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25151
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25152
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25153
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25154
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25155
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25156
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25157
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25158
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25159
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25160
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25161
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25162
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25163
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25164
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25165
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25166
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25167
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25168
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25169
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25170
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25171
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25172
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25173
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25174
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25175
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25176
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25177
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25178
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25179
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25180
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25181
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25182
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25183
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25184
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25185
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25186
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25187
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25188
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25189
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25190
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25191
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25192
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25193
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25194
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25195
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25196
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25197
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25198
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25199
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25200
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25201
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25202
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25203
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25204
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25205
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25206
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25207
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25208
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25209
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25210
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25211
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25212
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25213
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25214
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25215
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25216
    }/*function_add*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25217
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25218
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25219
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25220
 *MUL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25221
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25222
    case function_mul :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25223
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25224
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25225
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25226
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25227
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25228
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25229
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25230
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25231
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25232
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25233
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25234
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25235
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25236
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25237
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25238
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25239
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25240
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25241
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25242
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25243
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25244
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25245
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25246
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25247
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25248
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25249
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25250
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25251
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25252
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25253
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25254
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25255
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25256
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25257
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25258
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25259
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25260
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25261
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25262
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25263
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25264
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25265
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25266
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25267
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25268
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25269
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25270
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25271
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25272
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25273
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25274
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25275
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25276
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25277
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25278
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25279
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25280
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25281
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25282
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25283
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25284
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25285
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25286
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25287
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25288
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25289
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25290
    }/*function_mul*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25291
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25292
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25293
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25294
 *SUB
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25295
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25296
    case function_sub :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25297
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25298
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25299
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25300
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25301
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25302
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25303
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25304
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25305
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25306
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25307
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25308
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25309
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25310
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25311
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25312
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25313
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25314
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25315
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25316
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25317
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25318
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25319
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25320
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25321
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25322
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25323
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25324
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25325
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25326
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25327
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25328
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25329
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25330
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25331
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25332
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25333
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25334
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25335
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25336
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25337
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25338
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25339
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25340
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25341
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25342
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25343
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25344
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25345
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25346
                    if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25347
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25348
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25349
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25350
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25351
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25352
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25353
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25354
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25355
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25356
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25357
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25358
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25359
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25360
            if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25361
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25362
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25363
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25364
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25365
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25366
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25367
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25368
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25369
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25370
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25371
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25372
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25373
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25374
                    if(search_expression_type->is_same_type(&search_constant_type_c::dt_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25375
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25376
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25377
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25378
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25379
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25380
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25381
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25382
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25383
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25384
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25385
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25386
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25387
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25388
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25389
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25390
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25391
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25392
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25393
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25394
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25395
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25396
            if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25397
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25398
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25399
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25400
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25401
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25402
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25403
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25404
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25405
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25406
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25407
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25408
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25409
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25410
                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25411
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25412
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25413
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25414
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25415
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25416
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25417
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25418
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25419
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25420
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25421
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25422
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25423
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25424
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25425
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25426
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25427
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25428
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25429
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25430
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25431
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25432
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25433
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25434
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25435
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25436
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25437
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25438
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25439
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25440
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25441
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25442
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25443
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25444
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25445
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25446
                    if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25447
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25448
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25449
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25450
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25451
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25452
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25453
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25454
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25455
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25456
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25457
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25458
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25459
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25460
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25461
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25462
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25463
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25464
    }/*function_sub*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25465
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25466
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25467
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25468
 *DIV
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25469
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25470
    case function_div :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25471
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25472
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25473
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25474
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25475
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25476
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25477
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25478
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25479
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25480
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25481
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25482
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25483
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25484
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25485
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25486
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25487
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25488
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25489
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25490
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25491
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25492
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25493
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25494
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25495
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25496
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25497
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25498
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25499
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25500
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25501
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25502
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25503
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25504
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25505
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25506
            if(search_expression_type->is_same_type(&search_constant_type_c::time_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25507
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25508
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25509
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25510
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25511
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25512
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25513
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25514
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25515
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25516
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25517
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25518
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25519
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25520
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25521
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25522
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25523
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25524
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25525
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25526
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25527
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25528
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25529
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25530
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25531
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25532
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25533
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25534
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25535
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25536
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25537
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25538
    }/*function_div*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25539
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25540
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25541
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25542
 *MOD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25543
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25544
    case function_mod :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25545
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25546
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25547
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25548
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25549
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25550
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25551
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25552
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25553
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25554
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25555
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25556
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25557
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25558
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25559
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25560
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25561
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25562
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25563
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25564
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25565
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25566
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25567
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25568
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25569
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25570
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25571
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25572
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25573
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25574
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25575
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25576
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25577
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25578
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25579
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25580
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25581
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25582
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25583
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25584
    }/*function_mod*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25585
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25586
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25587
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25588
 *EXPT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25589
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25590
    case function_expt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25591
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25592
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25593
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25594
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25595
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25596
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25597
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25598
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25599
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25600
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25601
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25602
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25603
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25604
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25605
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25606
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25607
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25608
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25609
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25610
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25611
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25612
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25613
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25614
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25615
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25616
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25617
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25618
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25619
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25620
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25621
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25622
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25623
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25624
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25625
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25626
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25627
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25628
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25629
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25630
    }/*function_expt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25631
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25632
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25633
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25634
 *MOVE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25635
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25636
    case function_move :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25637
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25638
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25639
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25640
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25641
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25642
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25643
            
153
6aed920024f9 Modifying MOVE interface
greg
parents: 149
diff changeset
 25644
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25645
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25646
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25647
                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25648
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25649
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25650
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25651
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25652
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25653
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25654
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25655
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25656
    }/*function_move*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25657
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25658
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25659
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25660
 *SHL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25661
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25662
    case function_shl :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25663
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25664
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25665
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25666
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25667
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25668
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25669
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25670
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25671
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25672
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25673
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25674
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25675
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25676
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25677
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25678
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25679
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25680
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25681
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25682
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25683
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25684
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25685
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25686
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25687
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25688
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25689
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25690
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25691
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25692
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25693
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25694
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25695
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25696
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25697
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25698
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25699
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25700
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25701
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25702
    }/*function_shl*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25703
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25704
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25705
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25706
 *SHR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25707
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25708
    case function_shr :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25709
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25710
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25711
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25712
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25713
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25714
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25715
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25716
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25717
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25718
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25719
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25720
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25721
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25722
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25723
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25724
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25725
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25726
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25727
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25728
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25729
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25730
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25731
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25732
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25733
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25734
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25735
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25736
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25737
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25738
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25739
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25740
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25741
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25742
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25743
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25744
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25745
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25746
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25747
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25748
    }/*function_shr*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25749
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25750
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25751
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25752
 *ROR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25753
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25754
    case function_ror :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25755
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25756
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25757
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25758
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25759
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25760
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25761
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25762
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25763
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25764
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25765
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25766
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25767
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25768
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25769
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25770
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25771
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25772
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25773
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25774
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25775
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25776
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25777
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25778
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25779
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25780
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25781
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25782
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25783
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25784
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25785
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25786
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25787
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25788
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25789
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25790
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25791
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25792
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25793
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25794
    }/*function_ror*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25795
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25796
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25797
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25798
 *ROL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25799
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25800
    case function_rol :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25801
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25802
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25803
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25804
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25805
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25806
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25807
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25808
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25809
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25810
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25811
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25812
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25813
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25814
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25815
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25816
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25817
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25818
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25819
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25820
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25821
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25822
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25823
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25824
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25825
                        symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25826
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25827
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25828
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25829
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25830
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25831
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25832
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25833
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25834
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25835
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25836
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25837
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25838
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25839
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25840
    }/*function_rol*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25841
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25842
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25843
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25844
 *AND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25845
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25846
    case function_and :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25847
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25848
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25849
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25850
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25851
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25852
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25853
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25854
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25855
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25856
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25857
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25858
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25859
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25860
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25861
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25862
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25863
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25864
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25865
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25866
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25867
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25868
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25869
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25870
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25871
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25872
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25873
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25874
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25875
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25876
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25877
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25878
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25879
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25880
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25881
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25882
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25883
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25884
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25885
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25886
    }/*function_and*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25887
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25888
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25889
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25890
 *OR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25891
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25892
    case function_or :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25893
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25894
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25895
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25896
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25897
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25898
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25899
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25900
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25901
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25902
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25903
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25904
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25905
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25906
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25907
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25908
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25909
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25910
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25911
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25912
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25913
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25914
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25915
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25916
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25917
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25918
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25919
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25920
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25921
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25922
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25923
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25924
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25925
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25926
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25927
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25928
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25929
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25930
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25931
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25932
    }/*function_or*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25933
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25934
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25935
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25936
 *XOR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25937
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25938
    case function_xor :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25939
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25940
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25941
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25942
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25943
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25944
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25945
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25946
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25947
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25948
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25949
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25950
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25951
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25952
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25953
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25954
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25955
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25956
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25957
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25958
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25959
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25960
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25961
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25962
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25963
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25964
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25965
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25966
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25967
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25968
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25969
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25970
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25971
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25972
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25973
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 25974
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25975
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25976
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25977
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25978
    }/*function_xor*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25979
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25980
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25981
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25982
 *NOT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25983
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25984
    case function_not :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25985
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25986
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25987
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25988
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25989
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25990
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25991
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25992
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25993
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25994
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25995
                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25996
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25997
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25998
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 25999
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26000
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26001
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26002
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26003
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26004
    }/*function_not*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26005
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26006
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26007
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26008
 *SEL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26009
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26010
    case function_sel :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26011
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26012
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26013
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26014
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26015
            symbol_c *G_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26016
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26017
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26018
            if(search_expression_type->is_same_type(&search_constant_type_c::bool_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26019
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26020
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26021
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26022
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26023
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26024
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26025
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26026
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26027
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26028
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26029
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26030
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26031
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26032
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26033
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26034
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26035
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26036
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26037
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26038
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26039
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26040
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26041
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26042
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26043
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26044
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26045
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26046
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26047
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26048
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26049
                                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26050
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26051
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26052
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26053
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26054
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26055
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26056
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26057
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26058
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26059
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26060
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26061
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26062
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26063
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26064
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26065
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26066
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26067
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26068
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26069
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26070
    }/*function_sel*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26071
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26072
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26073
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26074
 *MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26075
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26076
    case function_max :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26077
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26078
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26079
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26080
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26081
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26082
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26083
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26084
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26085
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26086
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26087
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26088
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26089
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26090
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26091
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26092
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26093
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26094
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26095
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26096
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26097
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26098
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26099
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26100
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26101
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26102
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26103
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26104
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26105
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26106
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26107
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26108
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26109
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26110
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26111
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26112
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26113
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26114
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26115
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26116
    }/*function_max*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26117
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26118
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26119
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26120
 *MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26121
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26122
    case function_min :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26123
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26124
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26125
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26126
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26127
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26128
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26129
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26130
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26131
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26132
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26133
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26134
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26135
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26136
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26137
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26138
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26139
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26140
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26141
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26142
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26143
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26144
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26145
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26146
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26147
                        symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26148
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26149
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26150
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26151
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26152
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26153
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26154
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26155
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26156
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26157
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26158
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26159
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26160
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26161
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26162
    }/*function_min*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26163
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26164
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26165
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26166
 *LIMIT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26167
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26168
    case function_limit :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26169
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26170
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26171
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26172
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26173
            symbol_c *MN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26174
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26175
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26176
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26177
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26178
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26179
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26180
                    identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26181
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26182
                    symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26183
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26184
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26185
                    if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26186
                      IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26187
                    symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26188
                    last_type_symbol = last_type_symbol && search_expression_type->is_same_type(IN_type_symbol, last_type_symbol) ? search_expression_type->common_type(IN_type_symbol, last_type_symbol) : IN_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26189
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26190
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26191
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26192
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26193
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26194
                            identifier_c param_name("MX");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26195
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26196
                            symbol_c *MX_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26197
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26198
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26199
                            if (MX_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26200
                              MX_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26201
                            symbol_c *MX_type_symbol = search_expression_type->get_type(MX_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26202
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26203
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26204
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26205
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26206
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26207
                                symbol_c * return_type_symbol = IN_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26208
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26209
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26210
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26211
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26212
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26213
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26214
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26215
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26216
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26217
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26218
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26219
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26220
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26221
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26222
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26223
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26224
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26225
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26226
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26227
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26228
    }/*function_limit*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26229
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26230
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26231
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26232
 *MUX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26233
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26234
    case function_mux :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26235
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26236
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26237
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26238
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26239
            symbol_c *K_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26240
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26241
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26242
            if(search_expression_type->is_integer_type(K_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26243
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26244
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26245
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26246
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26247
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26248
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26249
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26250
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26251
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26252
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26253
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26254
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26255
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26256
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26257
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26258
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26259
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26260
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26261
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26262
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26263
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26264
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26265
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26266
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26267
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26268
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26269
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26270
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26271
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26272
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26273
                                symbol_c * return_type_symbol = last_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26274
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26275
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26276
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26277
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26278
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26279
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26280
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26281
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26282
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26283
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26284
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26285
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26286
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26287
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26288
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26289
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26290
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26291
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26292
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26293
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26294
    }/*function_mux*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26295
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26296
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26297
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26298
 *GT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26299
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26300
    case function_gt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26301
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26302
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26303
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26304
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26305
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26306
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26307
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26308
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26309
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26310
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26311
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26312
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26313
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26314
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26315
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26316
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26317
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26318
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26319
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26320
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26321
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26322
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26323
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26324
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26325
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26326
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26327
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26328
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26329
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26330
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26331
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26332
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26333
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26334
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26335
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26336
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26337
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26338
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26339
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26340
    }/*function_gt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26341
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26342
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26343
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26344
 *GE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26345
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26346
    case function_ge :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26347
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26348
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26349
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26350
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26351
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26352
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26353
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26354
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26355
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26356
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26357
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26358
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26359
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26360
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26361
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26362
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26363
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26364
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26365
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26366
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26367
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26368
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26369
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26370
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26371
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26372
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26373
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26374
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26375
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26376
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26377
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26378
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26379
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26380
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26381
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26382
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26383
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26384
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26385
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26386
    }/*function_ge*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26387
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26388
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26389
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26390
 *EQ
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26391
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26392
    case function_eq :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26393
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26394
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26395
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26396
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26397
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26398
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26399
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26400
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26401
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26402
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26403
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26404
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26405
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26406
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26407
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26408
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26409
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26410
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26411
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26412
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26413
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26414
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26415
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26416
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26417
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26418
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26419
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26420
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26421
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26422
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26423
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26424
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26425
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26426
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26427
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26428
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26429
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26430
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26431
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26432
    }/*function_eq*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26433
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26434
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26435
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26436
 *LT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26437
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26438
    case function_lt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26439
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26440
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26441
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26442
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26443
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26444
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26445
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26446
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26447
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26448
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26449
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26450
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26451
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26452
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26453
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26454
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26455
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26456
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26457
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26458
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26459
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26460
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26461
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26462
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26463
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26464
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26465
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26466
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26467
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26468
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26469
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26470
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26471
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26472
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26473
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26474
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26475
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26476
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26477
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26478
    }/*function_lt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26479
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26480
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26481
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26482
 *LE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26483
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26484
    case function_le :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26485
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26486
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26487
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26488
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26489
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26490
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26491
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26492
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26493
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26494
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26495
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26496
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26497
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26498
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26499
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26500
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26501
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26502
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26503
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26504
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26505
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26506
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26507
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26508
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26509
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26510
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26511
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26512
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26513
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26514
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26515
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26516
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26517
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26518
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26519
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26520
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26521
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26522
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26523
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26524
    }/*function_le*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26525
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26526
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26527
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26528
 *NE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26529
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26530
    case function_ne :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26531
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26532
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26533
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26534
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26535
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26536
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26537
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26538
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26539
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26540
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26541
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26542
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26543
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26544
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26545
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26546
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26547
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26548
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26549
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26550
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26551
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26552
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26553
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26554
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26555
                        symbol_c * return_type_symbol = &search_constant_type_c::bool_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26556
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26557
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26558
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26559
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26560
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26561
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26562
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26563
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26564
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26565
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26566
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26567
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26568
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26569
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26570
    }/*function_ne*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26571
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26572
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26573
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26574
 *LEN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26575
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26576
    case function_len :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26577
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26578
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26579
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26580
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26581
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26582
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26583
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26584
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26585
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26586
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26587
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26588
                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26589
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26590
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26591
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26592
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26593
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26594
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26595
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26596
    }/*function_len*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26597
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26598
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26599
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26600
 *LEFT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26601
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26602
    case function_left :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26603
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26604
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26605
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26606
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26607
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26608
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26609
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26610
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26611
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26612
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26613
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26614
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26615
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26616
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26617
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26618
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26619
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26620
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26621
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26622
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26623
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26624
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26625
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26626
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26627
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26628
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26629
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26630
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26631
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26632
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26633
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26634
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26635
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26636
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26637
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26638
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26639
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26640
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26641
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26642
    }/*function_left*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26643
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26644
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26645
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26646
 *RIGHT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26647
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26648
    case function_right :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26649
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26650
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26651
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26652
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26653
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26654
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26655
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26656
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26657
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26658
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26659
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26660
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26661
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26662
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26663
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26664
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26665
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26666
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26667
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26668
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26669
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26670
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26671
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26672
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26673
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26674
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26675
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26676
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26677
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26678
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26679
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26680
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26681
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26682
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26683
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26684
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26685
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26686
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26687
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26688
    }/*function_right*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26689
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26690
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26691
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26692
 *MID
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26693
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26694
    case function_mid :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26695
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26696
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26697
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26698
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26699
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26700
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26701
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26702
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26703
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26704
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26705
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26706
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26707
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26708
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26709
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26710
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26711
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26712
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26713
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26714
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26715
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26716
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26717
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26718
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26719
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26720
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26721
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26722
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26723
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26724
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26725
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26726
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26727
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26728
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26729
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26730
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26731
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26732
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26733
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26734
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26735
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26736
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26737
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26738
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26739
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26740
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26741
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26742
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26743
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26744
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26745
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26746
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26747
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26748
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26749
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26750
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26751
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26752
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26753
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26754
    }/*function_mid*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26755
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26756
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26757
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26758
 *CONCAT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26759
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26760
    case function_concat :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26761
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26762
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26763
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26764
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26765
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26766
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26767
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26768
            if(search_expression_type->is_same_type(&search_constant_type_c::date_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26769
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26770
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26771
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26772
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26773
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26774
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26775
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26776
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26777
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26778
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26779
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26780
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26781
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26782
                    if(search_expression_type->is_same_type(&search_constant_type_c::tod_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26783
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26784
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26785
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26786
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26787
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26788
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26789
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26790
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26791
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26792
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26793
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26794
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26795
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26796
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26797
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26798
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26799
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26800
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26801
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26802
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26803
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26804
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26805
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26806
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26807
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26808
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26809
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26810
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26811
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26812
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26813
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26814
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26815
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26816
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26817
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26818
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26819
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26820
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26821
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26822
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26823
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26824
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26825
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26826
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26827
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26828
    }/*function_concat*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26829
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26830
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26831
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26832
 *INSERT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26833
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26834
    case function_insert :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26835
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26836
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26837
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26838
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26839
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26840
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26841
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26842
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26843
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26844
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26845
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26846
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26847
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26848
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26849
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26850
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26851
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26852
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26853
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26854
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26855
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26856
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26857
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26858
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26859
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26860
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26861
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26862
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26863
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26864
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26865
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26866
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26867
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26868
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26869
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26870
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26871
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26872
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26873
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26874
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26875
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26876
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26877
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26878
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26879
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26880
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26881
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26882
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26883
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26884
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26885
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26886
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26887
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26888
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26889
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26890
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26891
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26892
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26893
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26894
    }/*function_insert*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26895
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26896
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26897
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26898
 *DELETE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26899
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26900
    case function_delete :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26901
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26902
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26903
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26904
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26905
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26906
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26907
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26908
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26909
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26910
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26911
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26912
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26913
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26914
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26915
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26916
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26917
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26918
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26919
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26920
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26921
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26922
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26923
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26924
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26925
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26926
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26927
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26928
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26929
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26930
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26931
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26932
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26933
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26934
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26935
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26936
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26937
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26938
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26939
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26940
                                return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26941
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26942
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26943
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26944
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26945
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26946
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26947
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26948
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26949
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26950
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26951
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26952
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26953
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26954
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26955
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 26956
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26957
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26958
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26959
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26960
    }/*function_delete*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26961
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26962
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26963
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26964
 *REPLACE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26965
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26966
    case function_replace :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26967
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26968
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26969
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26970
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26971
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26972
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26973
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26974
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26975
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26976
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26977
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26978
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26979
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26980
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26981
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26982
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26983
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26984
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26985
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26986
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26987
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26988
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26989
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26990
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26991
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26992
                            identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26993
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26994
                            symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26995
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26996
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26997
                            if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26998
                              L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 26999
                            symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27000
                            last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27001
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27002
                            if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27003
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27004
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27005
                                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27006
                                    identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27007
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27008
                                    symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27009
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27010
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27011
                                    if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27012
                                      P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27013
                                    symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27014
                                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27015
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27016
                                    if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27017
                                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27018
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27019
                                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27020
                                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27021
                                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27022
                                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27023
                                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27024
                                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27025
                                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27026
                                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27027
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27028
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27029
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27030
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27031
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27032
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27033
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27034
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27035
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27036
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27037
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27038
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27039
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27040
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27041
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27042
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27043
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27044
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27045
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27046
    }/*function_replace*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27047
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27048
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27049
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27050
 *FIND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27051
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27052
    case function_find :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27053
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27054
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27055
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27056
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27057
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27058
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27059
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27060
            if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27061
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27062
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27063
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27064
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27065
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27066
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27067
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27068
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27069
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27070
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27071
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27072
                    last_type_symbol = last_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 ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27073
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27074
                    if(search_expression_type->is_same_type(&search_constant_type_c::string_type_name, last_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27075
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27076
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27077
                        symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27078
                        return return_type_symbol;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27079
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27080
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27081
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27082
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27083
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27084
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27085
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27086
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27087
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 27088
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27089
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27090
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27091
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27092
    }/*function_find*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27093
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27094
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27095
    case function_none :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27096
    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27097
  }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27098
  return NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 27099
}