stage4/generate_c/il_code_gen.c
author lbessard
Fri, 24 Oct 2008 16:37:46 +0200
changeset 149 05ca171a3d57
parent 70 e1f0ebd2d9ec
child 153 6aed920024f9
permissions -rw-r--r--
Adding support for EN/ENO in standard functions
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
 
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    31
switch(current_function_type){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    32
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
    33
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    34
 *REAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    35
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    36
    case function_real_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    37
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    38
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    39
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    40
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    41
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    42
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    43
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    44
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    45
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    46
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    47
            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
    48
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    49
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    50
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    51
                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
    52
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    53
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    59
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    60
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    61
    }/*function_real_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    62
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    63
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    64
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    65
 *REAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    66
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    67
    case function_real_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    68
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    69
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    72
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    73
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    76
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    77
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    78
            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
    79
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    80
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    81
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    82
                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
    83
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    84
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    89
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    92
    }/*function_real_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    93
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    96
 *REAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    97
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    98
    case function_real_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
    99
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   100
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   101
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   104
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   105
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   106
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   107
            last_type_symbol = param_data_type;
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
            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
   110
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   113
                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
   114
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   115
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   120
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   121
        }
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
    }/*function_real_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   124
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   125
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   126
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   127
 *REAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   128
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   129
    case function_real_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   130
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   131
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   132
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   135
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   138
            last_type_symbol = param_data_type;
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
            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
   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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   144
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   145
                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
   146
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   155
    }/*function_real_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   156
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   157
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   158
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   159
 *REAL_TO_DWORD
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
    case function_real_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   162
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   163
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   164
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   165
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   166
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   167
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   170
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   171
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   172
            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
   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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   176
                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
   177
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   178
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   179
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   180
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   186
    }/*function_real_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   187
    break;
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
 *REAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   191
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   192
    case function_real_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   195
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   196
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   197
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   198
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   201
            last_type_symbol = param_data_type;
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
            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
   204
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   207
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   208
                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
   209
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   210
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   213
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   216
        }
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
    }/*function_real_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   219
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   220
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
 *REAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   223
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   224
    case function_real_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   225
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   226
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   227
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   228
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   229
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   230
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   231
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   232
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   233
            last_type_symbol = param_data_type;
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
            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
   236
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   237
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   238
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   239
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   240
                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
   241
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   242
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   246
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   247
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   250
    }/*function_real_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   251
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   254
 *REAL_TO_UDINT
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
    case function_real_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   257
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   258
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   261
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   262
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   263
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   264
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   265
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   266
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   267
            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
   268
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   269
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   270
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   271
                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
   272
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   273
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   279
        }
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
    }/*function_real_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   282
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   285
 *REAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   286
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   287
    case function_real_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   290
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   291
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   292
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   293
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   294
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   295
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   296
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   298
            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
   299
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   302
                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
   303
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   304
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   309
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   312
    }/*function_real_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   313
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   316
 *REAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   317
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   318
    case function_real_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   319
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   320
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   327
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   329
            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
   330
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   333
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   334
                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
   335
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   336
                break;
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_string*/
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_LWORD
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_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   356
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   357
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   358
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   359
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   360
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   361
            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
   362
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   363
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   364
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   365
                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
   366
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   367
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   368
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   369
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   375
    }/*function_real_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   376
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   377
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   378
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   379
 *REAL_TO_UINT
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
    case function_real_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   386
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   387
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   388
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   389
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   390
            last_type_symbol = param_data_type;
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
            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
   393
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   394
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   395
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   396
                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
   397
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   398
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   402
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   403
            ERROR;
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
    }/*function_real_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   407
    break;
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
 *REAL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   411
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   412
    case function_real_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   417
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   418
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   421
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   422
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   423
            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
   424
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   425
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   426
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   427
                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
   428
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   429
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   435
        }
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
    }/*function_real_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   438
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   441
 *REAL_TO_BYTE
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
    case function_real_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   444
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   445
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   448
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   449
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   452
            last_type_symbol = param_data_type;
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
            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
   455
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   456
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   457
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   458
                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
   459
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   460
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   461
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   462
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   465
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   468
    }/*function_real_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   469
    break;
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
 *REAL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   473
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   474
    case function_real_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   477
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   480
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   483
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   484
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   485
            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
   486
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   487
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   488
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   489
                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
   490
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   491
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   492
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   493
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   494
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   495
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   496
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   497
        }
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
    }/*function_real_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   500
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   501
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
 *REAL_TO_ULINT
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
    case function_real_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   506
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   507
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   510
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   511
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   514
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   515
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   516
            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
   517
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   520
                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
   521
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   522
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   525
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   526
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   527
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   528
        }
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
    }/*function_real_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   531
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   534
 *REAL_TO_BOOL
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
    case function_real_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   539
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   542
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   543
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   544
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   545
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   546
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   547
            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
   548
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   551
                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
   552
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   553
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   554
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   555
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   558
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   559
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   560
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   561
    }/*function_real_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   562
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   563
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
 *REAL_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   566
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   567
    case function_real_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   573
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   576
            last_type_symbol = param_data_type;
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
            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
   579
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   582
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   583
                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
   584
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   585
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   586
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   587
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   588
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   591
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   592
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   593
    }/*function_real_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   594
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   597
 *REAL_TO_INT
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
    case function_real_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   600
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   601
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   605
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   608
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   610
            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
   611
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   612
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   613
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   614
                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
   615
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   616
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   620
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   621
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   624
    }/*function_real_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   625
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   626
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   627
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   628
 *SINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   629
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   630
    case function_sint_to_real :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   633
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   636
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   639
            last_type_symbol = param_data_type;
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
            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
   642
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   645
                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
   646
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   647
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   653
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   654
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   655
    }/*function_sint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   656
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   657
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   658
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   659
 *SINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   660
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   661
    case function_sint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   662
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   663
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   666
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   667
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   670
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   671
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   672
            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
   673
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   674
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   675
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   676
                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
   677
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   678
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   683
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   686
    }/*function_sint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   687
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   690
 *SINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   691
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   692
    case function_sint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   693
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   694
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   695
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   698
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   699
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   700
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   701
            last_type_symbol = param_data_type;
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
            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
   704
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   707
                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
   708
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   709
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   714
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   715
        }
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
    }/*function_sint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   718
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   719
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   720
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   721
 *SINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   722
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   723
    case function_sint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   724
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   725
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   726
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   729
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   732
            last_type_symbol = param_data_type;
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
            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
   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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   738
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   739
                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
   740
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   749
    }/*function_sint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   750
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   751
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   752
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   753
 *SINT_TO_DWORD
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
    case function_sint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   756
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   757
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   758
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   759
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   760
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   761
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   764
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   766
            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
   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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   770
                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
   771
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   772
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   773
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   774
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   780
    }/*function_sint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   781
    break;
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
 *SINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   785
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   786
    case function_sint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   789
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   790
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   791
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   792
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   795
            last_type_symbol = param_data_type;
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
            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
   798
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   801
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   802
                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
   803
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   804
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   807
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   810
        }
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
    }/*function_sint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   813
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   814
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
 *SINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   817
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   818
    case function_sint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   819
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   820
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   821
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   822
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   823
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   824
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   825
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   826
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   827
            last_type_symbol = param_data_type;
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
            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
   830
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   831
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   832
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   833
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   834
                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
   835
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   836
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   840
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   841
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   844
    }/*function_sint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   845
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   848
 *SINT_TO_UDINT
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
    case function_sint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   851
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   852
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   855
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   856
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   857
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   858
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   859
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   860
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   861
            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
   862
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   863
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   864
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   865
                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
   866
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   867
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   873
        }
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
    }/*function_sint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   876
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   879
 *SINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   880
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   881
    case function_sint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   884
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   885
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   886
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   887
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   888
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   889
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   890
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   891
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   892
            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
   893
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   896
                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
   897
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   898
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   903
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   906
    }/*function_sint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   907
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   910
 *SINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   911
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   912
    case function_sint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   913
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   914
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   921
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   922
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   923
            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
   924
            {
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
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   927
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   928
                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
   929
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   930
                break;
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_string*/
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_LWORD
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_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   950
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   951
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   952
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   953
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   954
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   955
            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
   956
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   957
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   958
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   959
                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
   960
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   961
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   962
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   963
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   969
    }/*function_sint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   970
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   971
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   972
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   973
 *SINT_TO_UINT
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
    case function_sint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   980
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   981
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   982
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   983
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   984
            last_type_symbol = param_data_type;
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
            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
   987
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   988
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   989
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   990
                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
   991
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   992
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   996
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
   997
            ERROR;
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
    }/*function_sint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1001
    break;
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
 *SINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1005
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1006
    case function_sint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1011
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1012
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1015
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1016
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1017
            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
  1018
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1019
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1020
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1021
                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
  1022
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1023
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1029
        }
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
    }/*function_sint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1032
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1035
 *SINT_TO_BYTE
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
    case function_sint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1038
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1039
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1042
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1043
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1046
            last_type_symbol = param_data_type;
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
            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
  1049
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1050
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1051
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1052
                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
  1053
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1054
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1055
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1056
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1059
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1062
    }/*function_sint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1063
    break;
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
 *SINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1067
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1068
    case function_sint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1071
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1074
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1077
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1078
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1079
            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
  1080
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1081
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1082
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1083
                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
  1084
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1085
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1086
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1087
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1088
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1089
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1090
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1091
        }
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
    }/*function_sint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1094
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1095
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
 *SINT_TO_ULINT
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
    case function_sint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1100
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1101
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1104
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1105
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1108
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1109
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1110
            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
  1111
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1114
                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
  1115
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1116
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1119
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1121
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1122
        }
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
    }/*function_sint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1125
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1128
 *SINT_TO_BOOL
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
    case function_sint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1133
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1136
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1137
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1138
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1139
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1140
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1141
            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
  1142
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1145
                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
  1146
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1147
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1148
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1149
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1152
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1153
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1154
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1155
    }/*function_sint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1156
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1157
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
 *SINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1160
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1161
    case function_sint_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1167
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1170
            last_type_symbol = param_data_type;
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
            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
  1173
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1176
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1177
                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
  1178
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1179
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1180
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1181
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1182
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1185
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1186
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1187
    }/*function_sint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1188
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1191
 *SINT_TO_INT
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
    case function_sint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1194
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1195
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1199
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1202
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1203
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1204
            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
  1205
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1206
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1207
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1208
                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
  1209
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1210
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1214
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1215
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1218
    }/*function_sint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1219
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1220
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1221
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1222
 *LINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1223
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1224
    case function_lint_to_real :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1227
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1230
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1233
            last_type_symbol = param_data_type;
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
            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
  1236
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1239
                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
  1240
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1241
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1247
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1248
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1249
    }/*function_lint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1250
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1251
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1252
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1253
 *LINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1254
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1255
    case function_lint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1256
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1257
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1260
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1261
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1264
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1265
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1266
            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
  1267
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1268
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1269
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1270
                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
  1271
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1272
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1277
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1280
    }/*function_lint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1281
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1284
 *LINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1285
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1286
    case function_lint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1287
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1288
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1289
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1292
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1293
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1294
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1295
            last_type_symbol = param_data_type;
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
            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
  1298
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1301
                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
  1302
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1303
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1308
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1309
        }
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
    }/*function_lint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1312
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1313
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1314
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1315
 *LINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1316
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1317
    case function_lint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1318
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1319
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1320
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1323
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1326
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1332
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1333
                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
  1334
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1343
    }/*function_lint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1344
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1345
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1346
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1347
 *LINT_TO_DWORD
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
    case function_lint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1350
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1351
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1352
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1353
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1354
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1355
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1358
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1359
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1360
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1364
                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
  1365
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1366
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1367
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1368
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1374
    }/*function_lint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1375
    break;
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
 *LINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1379
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1380
    case function_lint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1383
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1384
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1385
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1386
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1389
            last_type_symbol = param_data_type;
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
            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
  1392
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1395
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1396
                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
  1397
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1398
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1401
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1404
        }
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
    }/*function_lint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1407
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1408
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
 *LINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1411
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1412
    case function_lint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1413
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1414
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1415
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1416
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1417
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1418
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1419
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1420
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1421
            last_type_symbol = param_data_type;
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
            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
  1424
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1425
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1426
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1427
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1428
                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
  1429
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1430
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1434
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1435
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1438
    }/*function_lint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1439
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1442
 *LINT_TO_UDINT
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
    case function_lint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1445
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1446
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1449
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1450
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1451
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1452
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1453
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1454
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1455
            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
  1456
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1457
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1458
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1459
                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
  1460
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1461
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1467
        }
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
    }/*function_lint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1470
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1473
 *LINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1474
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1475
    case function_lint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1478
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1479
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1480
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1481
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1482
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1483
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1484
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1485
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1486
            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
  1487
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1490
                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
  1491
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1492
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1497
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1500
    }/*function_lint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1501
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1504
 *LINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1505
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1506
    case function_lint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1507
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1508
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1515
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1516
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1517
            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
  1518
            {
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
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1521
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1522
                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
  1523
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1524
                break;
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_string*/
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_LWORD
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_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1544
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1545
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1546
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1547
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1548
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1549
            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
  1550
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1551
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1552
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1553
                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
  1554
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1555
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1556
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1557
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1563
    }/*function_lint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1564
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1565
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1566
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1567
 *LINT_TO_UINT
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
    case function_lint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1574
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1575
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1576
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1577
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1578
            last_type_symbol = param_data_type;
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
            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
  1581
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1582
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1583
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1584
                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
  1585
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1586
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1590
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1591
            ERROR;
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
    }/*function_lint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1595
    break;
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
 *LINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1599
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1600
    case function_lint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1605
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1606
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1609
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1610
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1611
            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
  1612
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1613
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1614
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1615
                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
  1616
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1617
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1623
        }
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
    }/*function_lint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1626
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1629
 *LINT_TO_BYTE
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
    case function_lint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1632
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1633
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1636
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1637
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1640
            last_type_symbol = param_data_type;
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
            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
  1643
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1644
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1645
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1646
                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
  1647
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1648
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1649
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1650
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1653
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1656
    }/*function_lint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1657
    break;
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
 *LINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1661
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1662
    case function_lint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1665
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1668
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1671
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1672
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1673
            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
  1674
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1675
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1676
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1677
                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
  1678
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1679
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1680
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1681
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1682
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1683
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1684
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1685
        }
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
    }/*function_lint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1688
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1689
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
 *LINT_TO_ULINT
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
    case function_lint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1694
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1695
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1698
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1699
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1702
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1703
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1704
            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
  1705
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1708
                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
  1709
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1710
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1713
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1714
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1715
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1716
        }
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
    }/*function_lint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1719
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1722
 *LINT_TO_BOOL
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
    case function_lint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1727
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1730
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1731
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1732
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1733
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1734
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1735
            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
  1736
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1739
                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
  1740
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1741
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1742
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1743
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1746
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1747
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1748
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1749
    }/*function_lint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1750
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1751
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
 *LINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1754
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1755
    case function_lint_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1761
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1764
            last_type_symbol = param_data_type;
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
            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
  1767
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1770
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1771
                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
  1772
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1773
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1774
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1775
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1776
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1779
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1780
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1781
    }/*function_lint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1782
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1785
 *LINT_TO_INT
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
    case function_lint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1788
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1789
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1793
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1796
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1797
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1798
            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
  1799
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1800
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1801
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1802
                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
  1803
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1804
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1808
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1809
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1812
    }/*function_lint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1813
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1814
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1815
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1816
 *DINT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1817
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1818
    case function_dint_to_real :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1821
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1824
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1827
            last_type_symbol = param_data_type;
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
            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
  1830
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1833
                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
  1834
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1835
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1841
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1842
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1843
    }/*function_dint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1844
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1845
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1846
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1847
 *DINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1848
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1849
    case function_dint_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1850
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1851
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1854
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1855
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1858
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1860
            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
  1861
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1862
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1863
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1864
                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
  1865
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1866
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1871
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1874
    }/*function_dint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1875
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1878
 *DINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1879
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1880
    case function_dint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1881
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1882
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1883
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1886
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1888
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1889
            last_type_symbol = param_data_type;
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
            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
  1892
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1895
                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
  1896
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1897
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1902
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1903
        }
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
    }/*function_dint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1906
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1907
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1908
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1909
 *DINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1910
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1911
    case function_dint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1912
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1913
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1914
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1917
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1920
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1926
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1927
                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
  1928
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1937
    }/*function_dint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1938
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1939
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1940
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1941
 *DINT_TO_DWORD
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
    case function_dint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1944
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1945
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1946
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1947
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1948
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1949
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1952
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1953
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1954
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1958
                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
  1959
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1960
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1961
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1962
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1968
    }/*function_dint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1969
    break;
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
 *DINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1973
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1974
    case function_dint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1977
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1978
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1979
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1980
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1983
            last_type_symbol = param_data_type;
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
            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
  1986
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1989
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1990
                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
  1991
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1992
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1995
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  1998
        }
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
    }/*function_dint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2001
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2002
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
 *DINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2005
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2006
    case function_dint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2007
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2008
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2009
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2010
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2011
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2012
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2013
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2014
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2015
            last_type_symbol = param_data_type;
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
            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
  2018
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2019
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2020
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2021
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2022
                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
  2023
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2024
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2028
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2029
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2032
    }/*function_dint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2033
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2036
 *DINT_TO_UDINT
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
    case function_dint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2039
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2040
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2043
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2044
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2045
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2046
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2047
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2048
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2049
            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
  2050
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2051
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2052
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2053
                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
  2054
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2055
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2061
        }
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
    }/*function_dint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2064
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2067
 *DINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2068
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2069
    case function_dint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2072
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2073
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2074
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2075
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2076
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2077
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2078
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2079
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2080
            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
  2081
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2084
                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
  2085
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2086
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2091
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2094
    }/*function_dint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2095
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2098
 *DINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2099
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2100
    case function_dint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2101
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2102
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2109
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2110
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2111
            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
  2112
            {
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
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2115
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2116
                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
  2117
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2118
                break;
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_string*/
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_LWORD
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_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2138
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2139
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2140
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2141
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2142
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2143
            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
  2144
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2145
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2146
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2147
                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
  2148
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2149
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2150
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2151
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2157
    }/*function_dint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2158
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2159
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2160
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2161
 *DINT_TO_UINT
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
    case function_dint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2168
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2169
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2170
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2171
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2172
            last_type_symbol = param_data_type;
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
            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
  2175
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2176
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2177
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2178
                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
  2179
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2180
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2184
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2185
            ERROR;
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
    }/*function_dint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2189
    break;
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
 *DINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2193
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2194
    case function_dint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2199
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2200
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2203
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2204
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2205
            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
  2206
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2207
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2208
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2209
                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
  2210
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2211
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2217
        }
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
    }/*function_dint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2220
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2223
 *DINT_TO_BYTE
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
    case function_dint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2226
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2227
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2230
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2231
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2234
            last_type_symbol = param_data_type;
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
            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
  2237
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2238
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2239
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2240
                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
  2241
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2242
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2243
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2244
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2247
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2250
    }/*function_dint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2251
    break;
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
 *DINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2255
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2256
    case function_dint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2259
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2262
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2265
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2266
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2267
            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
  2268
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2269
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2270
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2271
                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
  2272
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2273
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2274
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2275
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2276
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2277
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2278
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2279
        }
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
    }/*function_dint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2282
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2283
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
 *DINT_TO_ULINT
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
    case function_dint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2288
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2289
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2292
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2293
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2296
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2298
            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
  2299
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2302
                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
  2303
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2304
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2307
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2308
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2309
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2310
        }
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
    }/*function_dint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2313
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2316
 *DINT_TO_BOOL
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
    case function_dint_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2321
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2324
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2325
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2326
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2327
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2329
            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
  2330
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2333
                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
  2334
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2335
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2336
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2337
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2340
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2341
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2342
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2343
    }/*function_dint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2344
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2345
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
 *DINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2348
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2349
    case function_dint_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2355
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2358
            last_type_symbol = param_data_type;
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
            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
  2361
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2364
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2365
                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
  2366
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2367
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2368
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2369
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2370
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2373
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2374
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2375
    }/*function_dint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2376
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2379
 *DINT_TO_INT
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
    case function_dint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2382
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2383
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2387
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2390
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2391
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2392
            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
  2393
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2394
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2395
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2396
                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
  2397
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2398
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2402
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2403
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2406
    }/*function_dint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2407
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2408
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2409
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2410
 *DATE_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2411
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2412
    case function_date_to_real :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2415
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2418
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2421
            last_type_symbol = param_data_type;
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
            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
  2424
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2427
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2428
                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
  2429
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2430
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2431
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2435
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2436
        }
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
    }/*function_date_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2439
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2440
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2441
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2442
 *DATE_TO_SINT
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
    case function_date_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2447
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2448
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2449
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2450
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2453
            last_type_symbol = param_data_type;
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
            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
  2456
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2457
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2458
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2459
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2460
                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
  2461
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2462
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2468
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2469
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2470
    }/*function_date_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2471
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2472
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2473
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2474
 *DATE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2475
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2476
    case function_date_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2477
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2478
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2481
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2482
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2485
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2486
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2487
            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
  2488
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2489
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2490
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2491
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2492
                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
  2493
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2494
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2495
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2500
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2501
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2502
    }/*function_date_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2503
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2504
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2505
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2506
 *DATE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2507
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2508
    case function_date_to_dint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2514
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2517
            last_type_symbol = param_data_type;
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
            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
  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_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2523
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2524
                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
  2525
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2526
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2531
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2534
    }/*function_date_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2535
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2538
 *DATE_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2539
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2540
    case function_date_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2541
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2542
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2543
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2546
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2547
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2548
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2549
            last_type_symbol = param_data_type;
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
            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
  2552
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2555
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2556
                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
  2557
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2558
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2559
                
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
            
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
            ERROR;
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
    }/*function_date_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2567
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2568
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
 *DATE_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2571
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2572
    case function_date_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2573
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2574
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2577
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2578
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2579
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2580
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2581
            last_type_symbol = param_data_type;
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
            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
  2584
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2585
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2586
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2587
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2588
                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
  2589
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2590
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2595
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2596
        }
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
    }/*function_date_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2599
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2600
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2601
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2602
 *DATE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2603
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2604
    case function_date_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2605
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2606
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2607
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2610
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2613
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2619
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2620
                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
  2621
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2630
    }/*function_date_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2631
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2632
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2633
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2634
 *DATE_TO_STRING
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
    case function_date_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2637
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2638
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2639
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2640
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2641
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2642
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2645
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2646
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2647
            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
  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
                function_name = (symbol_c*)(new pragma_c("__date_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2651
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2652
                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
  2653
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2654
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2655
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2659
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2660
        }
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
    }/*function_date_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2663
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2666
 *DATE_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2667
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2668
    case function_date_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2669
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2670
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2671
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2672
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2673
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2674
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2675
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2676
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2677
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2678
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2679
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2683
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2684
                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
  2685
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2686
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2687
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2688
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2694
    }/*function_date_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2695
    break;
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
 *DATE_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2699
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2700
    case function_date_to_uint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2703
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2704
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2705
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2706
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2709
            last_type_symbol = param_data_type;
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
            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
  2712
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2715
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2716
                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
  2717
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2718
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2721
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2724
        }
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
    }/*function_date_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2727
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2728
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
 *DATE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2731
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2732
    case function_date_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2733
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2734
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2735
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2736
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2737
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2738
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2739
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2740
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2741
            last_type_symbol = param_data_type;
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
            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
  2744
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2745
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2746
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2747
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2748
                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
  2749
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2750
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2754
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2755
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2758
    }/*function_date_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2759
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2762
 *DATE_TO_BYTE
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
    case function_date_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2765
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2766
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2769
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2770
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2771
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2772
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2773
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2774
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2775
            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
  2776
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2777
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2778
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2779
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2780
                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
  2781
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2782
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2783
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2787
            ERROR;
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
    }/*function_date_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2791
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2792
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
 *DATE_TO_USINT
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
    case function_date_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2797
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2798
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2799
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2802
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2803
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2804
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2805
            last_type_symbol = param_data_type;
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2811
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2812
                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
  2813
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2814
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2820
        }
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
    }/*function_date_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2823
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2826
 *DATE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2827
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2828
    case function_date_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2831
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2832
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2833
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2834
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2835
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2836
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2837
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2838
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2839
            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
  2840
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2843
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2844
                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
  2845
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2846
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2852
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2853
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2854
    }/*function_date_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2855
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2856
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
 *DATE_TO_INT
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
    case function_date_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2863
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2864
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2865
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2866
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2867
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2868
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2869
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2870
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2871
            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
  2872
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2873
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2874
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2875
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2876
                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
  2877
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2878
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2883
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2886
    }/*function_date_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2887
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2890
 *DWORD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2891
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2892
    case function_dword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2893
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2894
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2901
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2902
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2903
            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
  2904
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2907
                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
  2908
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2909
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2910
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2915
        }
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
    }/*function_dword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2918
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2919
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
 *DWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2922
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2923
    case function_dword_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2924
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2925
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2926
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2929
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2930
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2931
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2932
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2933
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2934
            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
  2935
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2936
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2937
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2938
                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
  2939
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2940
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2943
            
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
            ERROR;
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
    }/*function_dword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2949
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2952
 *DWORD_TO_LINT
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
    case function_dword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2955
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2956
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2957
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2960
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2963
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2964
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2965
            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
  2966
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2967
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2968
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2969
                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
  2970
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2971
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2972
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2976
            ERROR;
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
    }/*function_dword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2980
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2981
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
 *DWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2984
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2985
    case function_dword_to_dint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2988
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2991
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2992
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2993
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2994
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2995
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  2996
            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
  2997
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3000
                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
  3001
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3002
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3003
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3008
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3009
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3010
    }/*function_dword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3011
    break;
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
 *DWORD_TO_DATE
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
    case function_dword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3017
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3018
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3022
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3023
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3024
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3025
            last_type_symbol = param_data_type;
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
            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
  3028
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3029
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3030
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3031
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3032
                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
  3033
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3034
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3035
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3036
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3039
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3042
    }/*function_dword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3043
    break;
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
 *DWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3047
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3048
    case function_dword_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3051
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3054
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3057
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3058
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3059
            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
  3060
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3061
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3062
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3063
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3064
                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
  3065
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3066
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3067
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3068
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3069
            
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
            ERROR;
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
    }/*function_dword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3075
    break;
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
 *DWORD_TO_TOD
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
    case function_dword_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3083
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3084
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3085
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3086
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3087
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3088
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3089
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3095
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3096
                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
  3097
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3098
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3099
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3100
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3101
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3102
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3103
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3104
        }
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
    }/*function_dword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3107
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3108
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
 *DWORD_TO_UDINT
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
    case function_dword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3113
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3114
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3117
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3118
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3121
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3122
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3123
            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
  3124
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3127
                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
  3128
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3129
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3132
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3133
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3134
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3135
        }
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
    }/*function_dword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3138
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3141
 *DWORD_TO_WORD
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
    case function_dword_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3146
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3149
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3150
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3151
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3152
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3153
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3154
            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
  3155
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3158
                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
  3159
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3160
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3161
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3162
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3165
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3166
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3167
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3168
    }/*function_dword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3169
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3170
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
 *DWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3173
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3174
    case function_dword_to_string :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3180
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3183
            last_type_symbol = param_data_type;
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
            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
  3186
            {
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
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3189
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3190
                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
  3191
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3192
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3193
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3194
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3195
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3198
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3199
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3200
    }/*function_dword_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3201
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3204
 *DWORD_TO_LWORD
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
    case function_dword_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3207
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3208
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3212
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3215
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3216
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3217
            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
  3218
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3219
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3220
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3221
                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
  3222
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3223
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3227
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3228
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3231
    }/*function_dword_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3232
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3233
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3234
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3235
 *DWORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3236
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3237
    case function_dword_to_uint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3240
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3243
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3246
            last_type_symbol = param_data_type;
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
            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
  3249
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3252
                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
  3253
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3254
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3260
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3261
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3262
    }/*function_dword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3263
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3264
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3265
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3266
 *DWORD_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3267
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3268
    case function_dword_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3269
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3270
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3273
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3274
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3277
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3278
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3279
            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
  3280
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3281
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3282
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3283
                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
  3284
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3285
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3290
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3293
    }/*function_dword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3294
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3297
 *DWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3298
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3299
    case function_dword_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3300
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3301
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3302
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3305
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3306
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3307
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3308
            last_type_symbol = param_data_type;
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
            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
  3311
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3314
                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
  3315
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3316
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3321
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3322
        }
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
    }/*function_dword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3325
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3326
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3327
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3328
 *DWORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3329
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3330
    case function_dword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3331
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3332
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3333
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3336
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3339
            last_type_symbol = param_data_type;
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
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3345
                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
  3346
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3347
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3348
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3352
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3353
        }
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
    }/*function_dword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3356
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3359
 *DWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3360
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3361
    case function_dword_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3362
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3363
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3364
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3365
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3366
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3367
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3368
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3369
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3370
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3371
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3372
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3376
                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
  3377
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3378
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3381
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3384
        }
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
    }/*function_dword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3387
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3388
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
 *DWORD_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3391
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3392
    case function_dword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3393
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3394
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3395
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3396
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3397
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3398
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3399
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3400
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3401
            last_type_symbol = param_data_type;
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
            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
  3404
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3405
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3406
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3407
                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
  3408
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3409
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3410
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3414
            ERROR;
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
    }/*function_dword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3418
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3419
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
 *DWORD_TO_TIME
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
    case function_dword_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3424
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3425
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3426
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3429
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3430
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3431
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3432
            last_type_symbol = param_data_type;
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3438
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3439
                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
  3440
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3441
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3447
        }
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
    }/*function_dword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3450
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3453
 *DWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3454
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3455
    case function_dword_to_int :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3458
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3459
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3460
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3461
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3462
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3463
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3464
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3465
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3466
            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
  3467
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3470
                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
  3471
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3472
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3477
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3480
    }/*function_dword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3481
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3484
 *DT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3485
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3486
    case function_dt_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3487
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3488
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3495
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3496
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3497
            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
  3498
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3501
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3502
                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
  3503
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3504
                break;
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_dt_to_real*/
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
 *DT_TO_SINT
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_dt_to_sint :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3524
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3525
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3526
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3527
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3528
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3529
            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
  3530
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3531
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3532
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3533
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3534
                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
  3535
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3536
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3537
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3542
        }
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
    }/*function_dt_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3545
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3546
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
 *DT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3549
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3550
    case function_dt_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3551
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3552
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3553
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3556
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3557
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3558
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3559
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3560
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3561
            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
  3562
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3563
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3564
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3565
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3566
                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
  3567
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3568
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3569
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3570
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3576
    }/*function_dt_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3577
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3578
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3579
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3580
 *DT_TO_DINT
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
    case function_dt_to_dint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3587
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3588
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3589
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3590
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3591
            last_type_symbol = param_data_type;
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
            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
  3594
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3595
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3596
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3597
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3598
                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
  3599
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3600
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3603
            
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
            ERROR;
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
    }/*function_dt_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3609
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3612
 *DT_TO_DWORD
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
    case function_dt_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3615
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3616
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3617
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3620
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3623
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3624
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3625
            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
  3626
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3627
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3628
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3629
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3630
                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
  3631
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3632
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3636
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3637
            ERROR;
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
    }/*function_dt_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3641
    break;
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
 *DT_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3645
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3646
    case function_dt_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3651
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3652
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3655
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3656
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3657
            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
  3658
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3659
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3660
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3661
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3662
                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
  3663
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3664
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3665
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3669
            ERROR;
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
    }/*function_dt_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3673
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3674
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
 *DT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3677
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3678
    case function_dt_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3681
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3684
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3685
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3686
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3687
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3688
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3689
            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
  3690
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3693
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3694
                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
  3695
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3696
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3702
        }
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
    }/*function_dt_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3705
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3708
 *DT_TO_STRING
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
    case function_dt_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3711
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3712
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3715
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3716
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3719
            last_type_symbol = param_data_type;
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
            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
  3722
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3723
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3724
                function_name = (symbol_c*)(new pragma_c("__dt_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3725
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3726
                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
  3727
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3728
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3729
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3734
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3735
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3736
    }/*function_dt_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3737
    break;
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
 *DT_TO_LWORD
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
    case function_dt_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3743
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3744
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3748
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3749
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3750
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3751
            last_type_symbol = param_data_type;
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
            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
  3754
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3755
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3756
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3757
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3758
                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
  3759
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3760
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3761
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3762
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3765
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3768
    }/*function_dt_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3769
    break;
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
 *DT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3773
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3774
    case function_dt_to_uint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3777
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3780
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3783
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3784
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3785
            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
  3786
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3787
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3788
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3789
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3790
                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
  3791
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3792
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3793
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3794
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3795
            
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
            ERROR;
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
    }/*function_dt_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3801
    break;
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
 *DT_TO_LREAL
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
    case function_dt_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3809
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3810
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3811
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3812
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3813
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3814
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3815
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3821
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3822
                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
  3823
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3824
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3825
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3826
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3827
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3828
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3829
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3830
        }
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
    }/*function_dt_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3833
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3834
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
 *DT_TO_BYTE
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
    case function_dt_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3839
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3840
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3843
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3844
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3847
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3848
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3849
            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
  3850
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3853
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3854
                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
  3855
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3856
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3857
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3858
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3860
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3861
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3864
    }/*function_dt_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3865
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3866
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3867
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3868
 *DT_TO_USINT
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
    case function_dt_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3876
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3879
            last_type_symbol = param_data_type;
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
            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
  3882
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3883
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3884
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3885
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3886
                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
  3887
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3888
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3891
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3892
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3893
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3894
        }
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
    }/*function_dt_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3897
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3900
 *DT_TO_ULINT
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
    case function_dt_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3905
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3908
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3909
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3910
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3911
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3912
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3913
            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
  3914
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3917
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3918
                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
  3919
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3920
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3921
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3924
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3925
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3926
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3927
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3928
    }/*function_dt_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3929
    break;
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
 *DT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3933
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3934
    case function_dt_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3939
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3940
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3941
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3942
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3943
            last_type_symbol = param_data_type;
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
            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
  3946
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3947
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3948
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3949
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3950
                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
  3951
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3952
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3953
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3954
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3957
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3958
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3959
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3960
    }/*function_dt_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3961
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3962
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
 *TOD_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3965
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3966
    case function_tod_to_real :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3972
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3975
            last_type_symbol = param_data_type;
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
            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
  3978
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3981
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3982
                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
  3983
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3984
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3985
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3986
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3987
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3990
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3991
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3992
    }/*function_tod_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3993
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3996
 *TOD_TO_SINT
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
    case function_tod_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  3999
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4000
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4004
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4007
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4008
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4009
            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
  4010
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4011
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4012
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4013
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4014
                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
  4015
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4016
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4019
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4020
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4021
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4022
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4023
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4024
    }/*function_tod_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4025
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4026
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
 *TOD_TO_LINT
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
    case function_tod_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4031
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4032
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4036
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4037
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4038
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4039
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4040
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4041
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4045
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4046
                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
  4047
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4048
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4052
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4053
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4056
    }/*function_tod_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4057
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4058
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4059
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4060
 *TOD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4061
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4062
    case function_tod_to_dint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4065
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4068
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4071
            last_type_symbol = param_data_type;
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
            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
  4074
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4077
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4078
                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
  4079
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4080
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4081
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4085
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4086
        }
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
    }/*function_tod_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4089
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4090
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4091
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4092
 *TOD_TO_DWORD
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
    case function_tod_to_dword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4097
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4098
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4099
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4100
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4103
            last_type_symbol = param_data_type;
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
            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
  4106
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4107
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4108
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4109
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4110
                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
  4111
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4112
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4118
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4119
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4120
    }/*function_tod_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4121
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4122
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4123
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4124
 *TOD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4125
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4126
    case function_tod_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4127
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4128
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4131
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4132
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4135
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4136
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4137
            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
  4138
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4139
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4140
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4141
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4142
                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
  4143
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4144
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4145
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4150
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4151
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4152
    }/*function_tod_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4153
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4154
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4155
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4156
 *TOD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4157
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4158
    case function_tod_to_word :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4164
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4167
            last_type_symbol = param_data_type;
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
            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
  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_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4173
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4174
                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
  4175
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4176
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4181
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4184
    }/*function_tod_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4185
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4188
 *TOD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4189
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4190
    case function_tod_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4191
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4192
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4193
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4196
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4197
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4198
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4199
            last_type_symbol = param_data_type;
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
            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
  4202
            {
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
                function_name = (symbol_c*)(new pragma_c("__tod_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4205
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4206
                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
  4207
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4208
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4209
                
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
            
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
            ERROR;
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
    }/*function_tod_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4217
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4218
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
 *TOD_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4221
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4222
    case function_tod_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4223
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4224
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4227
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4228
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4229
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4230
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4231
            last_type_symbol = param_data_type;
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
            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
  4234
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4235
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4236
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4237
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4238
                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
  4239
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4240
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4245
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4246
        }
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
    }/*function_tod_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4249
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4250
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4251
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4252
 *TOD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4253
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4254
    case function_tod_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4255
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4256
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4257
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4260
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4263
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4269
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4270
                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
  4271
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4280
    }/*function_tod_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4281
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4282
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4283
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4284
 *TOD_TO_LREAL
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
    case function_tod_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4287
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4288
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4289
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4290
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4291
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4292
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4295
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4296
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4297
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4301
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4302
                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
  4303
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4304
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4305
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4309
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4310
        }
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
    }/*function_tod_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4313
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4316
 *TOD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4317
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4318
    case function_tod_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4319
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4320
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4321
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4322
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4323
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4324
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4325
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4326
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4327
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4328
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4329
            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
  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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4333
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4334
                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
  4335
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4336
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4337
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4338
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4344
    }/*function_tod_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4345
    break;
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
 *TOD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4349
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4350
    case function_tod_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4353
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4354
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4355
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4356
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4359
            last_type_symbol = param_data_type;
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
            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
  4362
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4365
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4366
                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
  4367
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4368
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4371
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4374
        }
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
    }/*function_tod_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4377
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4378
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
 *TOD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4381
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4382
    case function_tod_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4383
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4384
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4385
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4386
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4387
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4388
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4389
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4390
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4391
            last_type_symbol = param_data_type;
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
            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
  4394
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4395
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4396
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4397
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4398
                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
  4399
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4400
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4404
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4405
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4408
    }/*function_tod_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4409
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4412
 *TOD_TO_INT
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
    case function_tod_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4415
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4416
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4419
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4420
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4421
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4422
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4423
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4424
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4425
            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
  4426
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4427
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4428
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4429
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4430
                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
  4431
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4432
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4433
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4437
            ERROR;
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
    }/*function_tod_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4441
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4442
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
 *UDINT_TO_REAL
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
    case function_udint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4447
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4448
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4449
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4452
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4453
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4454
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4455
            last_type_symbol = param_data_type;
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::udint_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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4461
                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
  4462
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4463
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4469
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4470
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4471
    }/*function_udint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4472
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4473
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
 *UDINT_TO_SINT
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
    case function_udint_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4480
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4481
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4482
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4483
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4484
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4485
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4486
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4487
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4488
            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
  4489
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4490
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4491
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4492
                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
  4493
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4494
                break;
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_udint_to_sint*/
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
 *UDINT_TO_LINT
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_udint_to_lint :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4514
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4515
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4516
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4517
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4518
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4519
            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
  4520
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4521
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4522
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4523
                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
  4524
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4525
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4526
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4527
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4533
    }/*function_udint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4534
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4535
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4536
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4537
 *UDINT_TO_DINT
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
    case function_udint_to_dint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4544
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4545
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4546
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4547
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4548
            last_type_symbol = param_data_type;
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
            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
  4551
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4552
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4553
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4554
                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
  4555
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4556
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4560
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4561
            ERROR;
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
    }/*function_udint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4565
    break;
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
 *UDINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4569
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4570
    case function_udint_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4575
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4576
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4579
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4580
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4581
            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
  4582
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4583
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4584
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4585
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4586
                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
  4587
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4588
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4589
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4593
            ERROR;
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
    }/*function_udint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4597
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4598
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
 *UDINT_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4601
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4602
    case function_udint_to_dword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4605
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4608
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4609
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4610
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4611
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4612
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4613
            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
  4614
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4617
                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
  4618
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4619
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4620
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4625
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4626
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4627
    }/*function_udint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4628
    break;
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
 *UDINT_TO_DT
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
    case function_udint_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4634
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4635
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4639
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4640
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4641
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4642
            last_type_symbol = param_data_type;
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
            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
  4645
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4646
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4647
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4648
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4649
                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
  4650
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4651
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4652
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4653
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4656
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4659
    }/*function_udint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4660
    break;
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
 *UDINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4664
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4665
    case function_udint_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4668
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4671
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4674
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4675
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4676
            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
  4677
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4678
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4679
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4680
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4681
                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
  4682
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4683
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4684
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4685
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4686
            
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
            ERROR;
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
    }/*function_udint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4692
    break;
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
 *UDINT_TO_WORD
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
    case function_udint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4700
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4701
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4702
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4703
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4704
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4705
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4706
            last_type_symbol = param_data_type;
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
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4712
                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
  4713
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4714
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4715
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4716
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4717
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4718
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4719
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4722
    }/*function_udint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4723
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4724
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4725
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4726
 *UDINT_TO_STRING
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
    case function_udint_to_string :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4734
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4737
            last_type_symbol = param_data_type;
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
            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
  4740
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4741
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4742
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4743
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4744
                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
  4745
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4746
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4749
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4750
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4751
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4752
        }
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
    }/*function_udint_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4755
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4758
 *UDINT_TO_LWORD
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
    case function_udint_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4763
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4766
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4767
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4768
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4769
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4770
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4771
            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
  4772
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4775
                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
  4776
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4777
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4778
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4779
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4782
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4783
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4784
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4785
    }/*function_udint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4786
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4787
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
 *UDINT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4790
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4791
    case function_udint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4797
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4800
            last_type_symbol = param_data_type;
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
            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
  4803
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4806
                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
  4807
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4808
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4811
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4812
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4813
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4814
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4815
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4816
    }/*function_udint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4817
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4818
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
 *UDINT_TO_LREAL
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
    case function_udint_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4823
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4824
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4828
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4829
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4830
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4831
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4832
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4833
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4837
                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
  4838
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4839
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4840
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4844
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4845
        }
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
    }/*function_udint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4848
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4849
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4850
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4851
 *UDINT_TO_BYTE
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
    case function_udint_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4856
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4857
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4858
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4859
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4862
            last_type_symbol = param_data_type;
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
            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
  4865
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4866
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4867
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4868
                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
  4869
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4870
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4871
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4876
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4877
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4878
    }/*function_udint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4879
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4880
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4881
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4882
 *UDINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4883
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4884
    case function_udint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4890
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4893
            last_type_symbol = param_data_type;
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
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4899
                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
  4900
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4901
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4902
                
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
            
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
            ERROR;
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
    }/*function_udint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4910
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4911
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
 *UDINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4914
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4915
    case function_udint_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4916
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4917
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4920
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4921
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4922
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4923
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4924
            last_type_symbol = param_data_type;
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
            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
  4927
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4928
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4929
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4930
                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
  4931
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4940
    }/*function_udint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4941
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4942
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4943
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4944
 *UDINT_TO_BOOL
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
    case function_udint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4947
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4948
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4949
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4950
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4951
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4952
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4955
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4956
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4957
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4961
                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
  4962
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4963
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4964
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4965
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4971
    }/*function_udint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4972
    break;
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
 *UDINT_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4976
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4977
    case function_udint_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4980
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4981
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4982
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4983
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4986
            last_type_symbol = param_data_type;
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
            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
  4989
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4992
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4993
                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
  4994
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4995
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  4998
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5001
        }
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
    }/*function_udint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5004
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5005
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
 *UDINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5008
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5009
    case function_udint_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5010
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5011
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5012
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5013
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5014
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5015
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5016
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5017
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5018
            last_type_symbol = param_data_type;
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
            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
  5021
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5022
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5023
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5024
                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
  5025
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5026
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5027
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5031
            ERROR;
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
    }/*function_udint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5035
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5036
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
 *WORD_TO_REAL
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
    case function_word_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5041
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5042
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5043
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5046
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5047
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5048
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5049
            last_type_symbol = param_data_type;
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::word_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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5055
                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
  5056
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5057
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5063
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5064
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5065
    }/*function_word_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5066
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5067
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
 *WORD_TO_SINT
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
    case function_word_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5074
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5075
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5076
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5077
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5078
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5079
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5080
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5081
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5082
            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
  5083
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5084
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5085
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5086
                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
  5087
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5088
                break;
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_word_to_sint*/
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
 *WORD_TO_LINT
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_word_to_lint :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5108
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5109
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5110
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5111
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5112
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5113
            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
  5114
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5115
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5116
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5117
                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
  5118
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5119
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5120
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5121
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5127
    }/*function_word_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5128
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5129
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5130
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5131
 *WORD_TO_DINT
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
    case function_word_to_dint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5138
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5139
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5140
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5141
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5142
            last_type_symbol = param_data_type;
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
            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
  5145
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5146
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5147
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5148
                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
  5149
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5150
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5154
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5155
            ERROR;
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
    }/*function_word_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5159
    break;
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
 *WORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5163
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5164
    case function_word_to_date :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5169
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5170
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5173
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5174
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5175
            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
  5176
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5177
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5178
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5179
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5180
                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
  5181
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5182
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5183
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5187
            ERROR;
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
    }/*function_word_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5191
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5192
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
 *WORD_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5195
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5196
    case function_word_to_dword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5199
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5202
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5203
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5204
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5205
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5206
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5207
            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
  5208
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5211
                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
  5212
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5213
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5214
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5219
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5220
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5221
    }/*function_word_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5222
    break;
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
 *WORD_TO_DT
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
    case function_word_to_dt :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5228
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5229
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5233
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5234
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5235
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5236
            last_type_symbol = param_data_type;
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
            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
  5239
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5240
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5241
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5242
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5243
                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
  5244
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5245
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5246
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5247
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5250
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5253
    }/*function_word_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5254
    break;
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
 *WORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5258
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5259
    case function_word_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5262
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5265
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5268
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5269
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5270
            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
  5271
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5272
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5273
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5274
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5275
                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
  5276
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5277
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5278
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5279
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5280
            
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
            ERROR;
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
    }/*function_word_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5286
    break;
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
 *WORD_TO_UDINT
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
    case function_word_to_udint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5294
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5295
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5296
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5297
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5298
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5299
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5300
            last_type_symbol = param_data_type;
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
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5306
                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
  5307
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5308
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5309
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5310
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5311
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5312
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5313
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5316
    }/*function_word_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5317
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5318
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5319
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5320
 *WORD_TO_STRING
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
    case function_word_to_string :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5328
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5331
            last_type_symbol = param_data_type;
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
            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
  5334
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5335
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5336
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5337
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5338
                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
  5339
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5340
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5343
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5344
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5345
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5346
        }
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
    }/*function_word_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5349
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5352
 *WORD_TO_LWORD
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
    case function_word_to_lword :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5357
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5360
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5361
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5362
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5363
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5364
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5365
            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
  5366
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5369
                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
  5370
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5371
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5372
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5373
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5376
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5377
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5378
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5379
    }/*function_word_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5380
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5381
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
 *WORD_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5384
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5385
    case function_word_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5391
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5394
            last_type_symbol = param_data_type;
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
            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
  5397
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5400
                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
  5401
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5402
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5405
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5406
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5407
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5408
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5409
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5410
    }/*function_word_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5411
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5412
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
 *WORD_TO_LREAL
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
    case function_word_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5417
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5418
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5422
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5423
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5424
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5425
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5426
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5427
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5431
                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
  5432
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5433
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5434
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5438
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5439
        }
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
    }/*function_word_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5442
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5443
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5444
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5445
 *WORD_TO_BYTE
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
    case function_word_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5450
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5451
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5452
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5453
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5456
            last_type_symbol = param_data_type;
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
            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
  5459
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5460
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5461
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5462
                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
  5463
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5464
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5465
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5470
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5471
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5472
    }/*function_word_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5473
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5474
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5475
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5476
 *WORD_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5477
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5478
    case function_word_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5484
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5487
            last_type_symbol = param_data_type;
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
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5493
                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
  5494
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5495
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5496
                
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
            
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
            ERROR;
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
    }/*function_word_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5504
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5505
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
 *WORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5508
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5509
    case function_word_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5510
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5511
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5514
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5515
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5516
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5517
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5518
            last_type_symbol = param_data_type;
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
            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
  5521
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5522
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5523
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5524
                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
  5525
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5534
    }/*function_word_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5535
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5536
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5537
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5538
 *WORD_TO_BOOL
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
    case function_word_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5541
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5542
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5543
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5544
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5545
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5546
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5549
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5550
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5551
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5555
                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
  5556
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5557
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5558
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5559
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5565
    }/*function_word_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5566
    break;
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
 *WORD_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5570
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5571
    case function_word_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5574
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5575
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5576
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5577
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5580
            last_type_symbol = param_data_type;
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
            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
  5583
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5586
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5587
                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
  5588
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5589
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5592
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5595
        }
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
    }/*function_word_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5598
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5599
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
 *WORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5602
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5603
    case function_word_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5604
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5605
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5606
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5607
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5608
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5609
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5610
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5611
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5612
            last_type_symbol = param_data_type;
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
            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
  5615
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5616
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5617
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5618
                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
  5619
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5620
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5621
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5625
            ERROR;
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
    }/*function_word_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5629
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5630
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
 *STRING_TO_REAL
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
    case function_string_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5635
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5636
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5637
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5640
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5641
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5642
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5643
            last_type_symbol = param_data_type;
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::string_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
                function_name = (symbol_c*)(new pragma_c("__string_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5649
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5650
                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
  5651
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5652
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5658
        }
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
    }/*function_string_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5661
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5664
 *STRING_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5665
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5666
    case function_string_to_sint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5669
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5670
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5671
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5672
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5673
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5674
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5675
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5676
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5677
            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
  5678
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5681
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5682
                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
  5683
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5684
                break;
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5690
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5691
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5692
    }/*function_string_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5693
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5694
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
 *STRING_TO_LINT
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
    case function_string_to_lint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5701
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5702
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5703
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5704
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5705
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5706
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5707
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5708
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5709
            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
  5710
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5711
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5712
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5713
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5714
                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
  5715
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5716
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5721
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5724
    }/*function_string_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5725
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5728
 *STRING_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5729
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5730
    case function_string_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5731
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5732
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5739
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5740
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5741
            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
  5742
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5745
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5746
                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
  5747
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5748
                break;
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_string_to_dint*/
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
 *STRING_TO_DATE
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_string_to_date :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5768
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5769
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5770
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5771
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5772
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5773
            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
  5774
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5775
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5776
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5777
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5778
                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
  5779
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5780
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5781
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5786
        }
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
    }/*function_string_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5789
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5790
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
 *STRING_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5793
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5794
    case function_string_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5795
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5796
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5797
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5800
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5801
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5802
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5803
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5804
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5805
            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
  5806
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5807
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5808
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5809
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5810
                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
  5811
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5812
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5813
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5814
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5820
    }/*function_string_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5821
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5822
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5823
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5824
 *STRING_TO_DT
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
    case function_string_to_dt :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5831
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5832
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5833
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5834
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5835
            last_type_symbol = param_data_type;
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
            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
  5838
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5839
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5840
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5841
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5842
                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
  5843
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5844
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5847
            
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
            ERROR;
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
    }/*function_string_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5853
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5856
 *STRING_TO_TOD
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
    case function_string_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5859
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5860
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5861
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5864
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5867
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5868
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5869
            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
  5870
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5871
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5872
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5873
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5874
                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
  5875
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5876
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5880
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5881
            ERROR;
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
    }/*function_string_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5885
    break;
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
 *STRING_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5889
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5890
    case function_string_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5895
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5896
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5899
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5900
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5901
            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
  5902
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5903
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5904
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5905
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5906
                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
  5907
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5908
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5909
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5913
            ERROR;
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
    }/*function_string_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5917
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5918
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
 *STRING_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5921
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5922
    case function_string_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5925
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5928
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5929
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5930
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5931
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5932
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5933
            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
  5934
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5937
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5938
                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
  5939
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5940
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5946
        }
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
    }/*function_string_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5949
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5952
 *STRING_TO_LWORD
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
    case function_string_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5955
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5956
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5959
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5960
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5963
            last_type_symbol = param_data_type;
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
            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
  5966
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5967
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5968
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5969
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5970
                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
  5971
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5972
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5973
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5978
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5979
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5980
    }/*function_string_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5981
    break;
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
 *STRING_TO_UINT
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
    case function_string_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5987
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5988
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5992
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5993
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5994
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5995
            last_type_symbol = param_data_type;
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
            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
  5998
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  5999
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6000
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6001
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6002
                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
  6003
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6004
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6005
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6006
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6009
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6012
    }/*function_string_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6013
    break;
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
 *STRING_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6017
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6018
    case function_string_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6021
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6024
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6027
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6028
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6029
            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
  6030
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6031
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6032
                function_name = (symbol_c*)(new pragma_c("__string_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6033
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6034
                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
  6035
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6036
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6037
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6038
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6039
            
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
            ERROR;
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
    }/*function_string_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6045
    break;
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
 *STRING_TO_BYTE
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
    case function_string_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6053
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6054
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6055
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6056
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6057
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6058
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6059
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__string_to_bit"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6065
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6066
                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
  6067
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6068
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6069
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6070
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6071
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6072
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6073
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6074
        }
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
    }/*function_string_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6077
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6078
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
 *STRING_TO_USINT
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
    case function_string_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6083
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6084
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6087
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6088
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6091
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6092
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6093
            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
  6094
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6097
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6098
                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
  6099
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6100
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6101
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6102
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6103
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6104
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6105
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6108
    }/*function_string_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6109
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6110
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6111
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6112
 *STRING_TO_ULINT
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
    case function_string_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6120
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6123
            last_type_symbol = param_data_type;
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
            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
  6126
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6127
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6128
                function_name = (symbol_c*)(new pragma_c("__string_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6129
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6130
                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
  6131
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6132
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6135
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6136
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6137
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6138
        }
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
    }/*function_string_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6141
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6144
 *STRING_TO_BOOL
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
    case function_string_to_bool :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6149
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6152
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6153
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6154
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6155
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6156
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6157
            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
  6158
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_bool"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6161
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6162
                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
  6163
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6164
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6165
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6168
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6169
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6170
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6171
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6172
    }/*function_string_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6173
    break;
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
 *STRING_TO_TIME
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6177
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6178
    case function_string_to_time :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6183
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6184
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6185
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6186
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6187
            last_type_symbol = param_data_type;
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
            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
  6190
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6191
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6192
                function_name = (symbol_c*)(new pragma_c("__string_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6193
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6194
                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
  6195
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6196
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6197
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6198
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6201
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6202
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6203
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6204
    }/*function_string_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6205
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6206
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
 *STRING_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6209
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6210
    case function_string_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6216
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6219
            last_type_symbol = param_data_type;
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
            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
  6222
            {
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
                function_name = (symbol_c*)(new pragma_c("__string_to_sint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6225
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6226
                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
  6227
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6228
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6229
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6230
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6231
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6234
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6235
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6236
    }/*function_string_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6237
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6240
 *LWORD_TO_REAL
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
    case function_lword_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6243
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6244
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6248
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6251
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6252
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6253
            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
  6254
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6255
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6256
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6257
                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
  6258
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6259
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6263
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6264
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6267
    }/*function_lword_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6268
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6269
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6270
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6271
 *LWORD_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6272
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6273
    case function_lword_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6276
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6279
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6282
            last_type_symbol = param_data_type;
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
            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
  6285
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6288
                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
  6289
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6290
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6296
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6297
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6298
    }/*function_lword_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6299
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6300
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6301
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6302
 *LWORD_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6303
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6304
    case function_lword_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6305
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6306
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6309
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6310
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6313
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6314
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6315
            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
  6316
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6317
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6318
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6319
                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
  6320
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6321
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6326
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6329
    }/*function_lword_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6330
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6333
 *LWORD_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6334
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6335
    case function_lword_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6336
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6337
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6338
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6341
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6342
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6343
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6344
            last_type_symbol = param_data_type;
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
            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
  6347
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6350
                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
  6351
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6352
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6357
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6358
        }
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
    }/*function_lword_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6361
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6362
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6363
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6364
 *LWORD_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6365
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6366
    case function_lword_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6367
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6368
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6369
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6372
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6375
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6381
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6382
                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
  6383
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6392
    }/*function_lword_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6393
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6394
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6395
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6396
 *LWORD_TO_DWORD
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
    case function_lword_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6399
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6400
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6401
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6402
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6403
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6404
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6407
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6408
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6409
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6413
                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
  6414
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6415
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6416
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6417
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6423
    }/*function_lword_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6424
    break;
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
 *LWORD_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6428
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6429
    case function_lword_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6432
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6433
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6434
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6435
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6438
            last_type_symbol = param_data_type;
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
            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
  6441
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6444
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6445
                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
  6446
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6447
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6450
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6453
        }
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
    }/*function_lword_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6456
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6457
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
 *LWORD_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6460
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6461
    case function_lword_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6462
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6463
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6464
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6465
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6466
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6467
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6468
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6469
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6470
            last_type_symbol = param_data_type;
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
            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
  6473
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6474
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6475
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6476
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6477
                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
  6478
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6479
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6483
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6484
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6487
    }/*function_lword_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6488
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6491
 *LWORD_TO_UDINT
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
    case function_lword_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6494
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6495
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6498
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6499
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6500
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6501
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6502
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6504
            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
  6505
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6506
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6507
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6508
                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
  6509
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6510
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6516
        }
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
    }/*function_lword_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6519
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6522
 *LWORD_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6523
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6524
    case function_lword_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6527
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6528
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6529
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6530
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6531
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6532
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6533
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6534
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6535
            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
  6536
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6539
                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
  6540
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6541
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6546
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6549
    }/*function_lword_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6550
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6553
 *LWORD_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6554
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6555
    case function_lword_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6556
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6557
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6564
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6566
            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
  6567
            {
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
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6570
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6571
                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
  6572
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6573
                break;
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_string*/
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_UINT
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_uint :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6593
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6594
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6595
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6596
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6597
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6598
            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
  6599
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6600
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6601
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6602
                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
  6603
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6604
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6605
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6606
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6612
    }/*function_lword_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6613
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6614
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6615
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6616
 *LWORD_TO_LREAL
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
    case function_lword_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6623
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6624
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6625
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6626
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6627
            last_type_symbol = param_data_type;
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
            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
  6630
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6631
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6632
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6633
                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
  6634
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6635
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6639
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6640
            ERROR;
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
    }/*function_lword_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6644
    break;
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
 *LWORD_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6648
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6649
    case function_lword_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6654
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6655
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6658
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6659
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6660
            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
  6661
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6662
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6663
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6664
                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
  6665
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6666
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6672
        }
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
    }/*function_lword_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6675
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6678
 *LWORD_TO_USINT
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
    case function_lword_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6681
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6682
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6685
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6686
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6689
            last_type_symbol = param_data_type;
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
            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
  6692
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6693
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6694
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6695
                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
  6696
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6697
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6698
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6699
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6702
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6705
    }/*function_lword_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6706
    break;
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
 *LWORD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6710
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6711
    case function_lword_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6714
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6717
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6720
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6721
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6722
            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
  6723
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6724
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6725
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6726
                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
  6727
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6728
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6729
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6730
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6731
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6732
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6733
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6734
        }
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
    }/*function_lword_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6737
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6738
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
 *LWORD_TO_BOOL
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
    case function_lword_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6743
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6744
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6747
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6748
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6751
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6752
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6753
            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
  6754
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6757
                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
  6758
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6759
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6762
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6763
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6764
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6765
        }
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
    }/*function_lword_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6768
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6771
 *LWORD_TO_TIME
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
    case function_lword_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6776
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6779
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6780
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6781
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6782
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6783
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6784
            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
  6785
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6788
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6789
                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
  6790
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6791
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6792
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6795
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6796
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6797
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6798
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6799
    }/*function_lword_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6800
    break;
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
 *LWORD_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6804
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6805
    case function_lword_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6810
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6811
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6812
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6813
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6814
            last_type_symbol = param_data_type;
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
            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
  6817
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6818
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6819
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6820
                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
  6821
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6822
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6823
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6824
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6825
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6828
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6829
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6830
    }/*function_lword_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6831
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6834
 *UINT_TO_REAL
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
    case function_uint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6837
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6838
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6842
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6845
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6846
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6847
            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
  6848
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6849
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6850
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6851
                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
  6852
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6853
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6857
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6858
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6861
    }/*function_uint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6862
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6863
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6864
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6865
 *UINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6866
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6867
    case function_uint_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6870
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6873
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6876
            last_type_symbol = param_data_type;
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
            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
  6879
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6882
                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
  6883
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6884
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6890
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6891
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6892
    }/*function_uint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6893
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6894
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6895
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6896
 *UINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6897
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6898
    case function_uint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6899
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6900
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6903
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6904
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6907
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6908
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6909
            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
  6910
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6911
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6912
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6913
                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
  6914
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6915
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6920
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6923
    }/*function_uint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6924
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6927
 *UINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6928
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6929
    case function_uint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6930
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6931
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6932
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6935
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6936
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6937
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6938
            last_type_symbol = param_data_type;
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
            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
  6941
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6944
                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
  6945
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6946
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6951
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6952
        }
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
    }/*function_uint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6955
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6956
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6957
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6958
 *UINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6959
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6960
    case function_uint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6961
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6962
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6963
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6966
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6969
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6975
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6976
                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
  6977
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6986
    }/*function_uint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6987
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6988
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6989
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6990
 *UINT_TO_DWORD
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
    case function_uint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6993
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6994
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6995
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6996
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6997
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  6998
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7001
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7002
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7003
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7007
                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
  7008
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7009
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7010
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7011
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7017
    }/*function_uint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7018
    break;
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
 *UINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7022
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7023
    case function_uint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7026
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7027
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7028
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7029
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7032
            last_type_symbol = param_data_type;
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
            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
  7035
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7038
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7039
                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
  7040
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7041
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7044
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7047
        }
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
    }/*function_uint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7050
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7051
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
 *UINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7054
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7055
    case function_uint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7056
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7057
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7058
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7059
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7060
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7061
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7062
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7063
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7064
            last_type_symbol = param_data_type;
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
            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
  7067
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7068
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7069
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7070
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7071
                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
  7072
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7073
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7078
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7081
    }/*function_uint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7082
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7085
 *UINT_TO_UDINT
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
    case function_uint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7088
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7089
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7092
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7093
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7094
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7095
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7096
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7098
            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
  7099
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7100
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7101
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7102
                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
  7103
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7104
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7110
        }
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
    }/*function_uint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7113
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7116
 *UINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7117
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7118
    case function_uint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7121
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7122
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7123
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7124
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7125
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7126
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7127
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7128
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7129
            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
  7130
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7133
                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
  7134
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7135
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7140
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7143
    }/*function_uint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7144
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7147
 *UINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7148
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7149
    case function_uint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7150
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7151
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7158
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7160
            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
  7161
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7164
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7165
                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
  7166
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7167
                break;
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_uint_to_string*/
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_LWORD
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_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7187
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7188
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7189
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7190
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7191
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7192
            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
  7193
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7194
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7195
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7196
                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
  7197
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7198
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7199
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7200
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7206
    }/*function_uint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7207
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7208
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7209
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7210
 *UINT_TO_LREAL
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
    case function_uint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7217
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7218
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7219
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7220
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7221
            last_type_symbol = param_data_type;
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
            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
  7224
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7225
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7226
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7227
                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
  7228
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7229
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7234
            ERROR;
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
    }/*function_uint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7238
    break;
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
 *UINT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7242
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7243
    case function_uint_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7248
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7249
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7252
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7253
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7254
            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
  7255
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7256
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7257
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7258
                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
  7259
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7260
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7266
        }
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
    }/*function_uint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7269
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7272
 *UINT_TO_USINT
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
    case function_uint_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7275
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7276
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7279
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7280
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7283
            last_type_symbol = param_data_type;
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
            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
  7286
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7287
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7288
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7289
                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
  7290
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7291
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7292
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7293
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7296
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7299
    }/*function_uint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7300
    break;
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
 *UINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7304
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7305
    case function_uint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7308
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7311
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7314
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7315
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7316
            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
  7317
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7318
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7319
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7320
                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
  7321
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7322
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7323
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7324
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7325
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7326
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7327
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7328
        }
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
    }/*function_uint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7331
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7332
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
 *UINT_TO_BOOL
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
    case function_uint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7337
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7338
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7341
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7342
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7345
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7346
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7347
            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
  7348
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7351
                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
  7352
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7353
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7356
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7357
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7358
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7359
        }
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
    }/*function_uint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7362
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7365
 *UINT_TO_TIME
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
    case function_uint_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7370
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7373
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7374
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7375
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7376
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7377
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7378
            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
  7379
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7382
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7383
                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
  7384
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7385
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7386
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7389
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7390
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7391
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7392
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7393
    }/*function_uint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7394
    break;
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
 *UINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7398
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7399
    case function_uint_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7404
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7405
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7406
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7407
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7408
            last_type_symbol = param_data_type;
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
            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
  7411
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7412
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7413
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7414
                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
  7415
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7416
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7417
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7418
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7419
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7422
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7423
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7424
    }/*function_uint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7425
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7428
 *LREAL_TO_REAL
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
    case function_lreal_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7431
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7432
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7436
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7439
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7440
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7441
            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
  7442
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7443
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7444
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7445
                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
  7446
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7447
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7451
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7452
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7455
    }/*function_lreal_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7456
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7457
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7458
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7459
 *LREAL_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7460
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7461
    case function_lreal_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7464
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7467
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7470
            last_type_symbol = param_data_type;
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
            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
  7473
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7476
                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
  7477
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7478
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7484
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7485
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7486
    }/*function_lreal_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7487
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7488
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7489
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7490
 *LREAL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7491
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7492
    case function_lreal_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7493
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7494
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7497
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7498
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7501
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7502
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7503
            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
  7504
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7505
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7506
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7507
                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
  7508
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7509
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7514
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7517
    }/*function_lreal_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7518
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7521
 *LREAL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7522
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7523
    case function_lreal_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7524
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7525
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7526
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7529
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7530
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7531
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7532
            last_type_symbol = param_data_type;
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
            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
  7535
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7538
                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
  7539
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7540
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7545
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7546
        }
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
    }/*function_lreal_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7549
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7550
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7551
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7552
 *LREAL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7553
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7554
    case function_lreal_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7555
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7556
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7557
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7560
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7563
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7569
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7570
                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
  7571
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7580
    }/*function_lreal_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7581
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7582
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7583
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7584
 *LREAL_TO_DWORD
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
    case function_lreal_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7587
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7588
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7589
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7590
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7591
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7592
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7595
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7596
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7597
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7601
                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
  7602
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7603
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7604
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7605
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7611
    }/*function_lreal_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7612
    break;
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
 *LREAL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7616
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7617
    case function_lreal_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7620
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7621
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7622
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7623
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7626
            last_type_symbol = param_data_type;
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
            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
  7629
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7632
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7633
                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
  7634
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7635
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7638
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7641
        }
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
    }/*function_lreal_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7644
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7645
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
 *LREAL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7648
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7649
    case function_lreal_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7650
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7651
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7652
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7653
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7654
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7655
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7656
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7657
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7658
            last_type_symbol = param_data_type;
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
            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
  7661
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7662
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7663
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7664
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7665
                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
  7666
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7667
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7671
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7672
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7675
    }/*function_lreal_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7676
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7679
 *LREAL_TO_UDINT
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
    case function_lreal_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7682
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7683
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7686
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7687
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7688
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7689
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7690
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7692
            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
  7693
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7694
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7695
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7696
                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
  7697
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7698
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7704
        }
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
    }/*function_lreal_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7707
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7710
 *LREAL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7711
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7712
    case function_lreal_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7715
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7716
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7717
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7718
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7719
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7720
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7721
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7722
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7723
            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
  7724
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7727
                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
  7728
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7729
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7734
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7737
    }/*function_lreal_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7738
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7741
 *LREAL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7742
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7743
    case function_lreal_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7744
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7745
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7752
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7754
            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
  7755
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7758
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7759
                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
  7760
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7761
                break;
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_lreal_to_string*/
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
 *LREAL_TO_LWORD
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_lreal_to_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7781
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7782
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7783
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7784
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7785
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7786
            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
  7787
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7788
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7789
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7790
                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
  7791
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7792
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7793
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7794
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7800
    }/*function_lreal_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7801
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7802
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7803
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7804
 *LREAL_TO_UINT
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
    case function_lreal_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7811
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7812
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7813
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7814
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7815
            last_type_symbol = param_data_type;
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
            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
  7818
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7819
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7820
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7821
                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
  7822
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7823
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7827
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7828
            ERROR;
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
    }/*function_lreal_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7832
    break;
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
 *LREAL_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7836
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7837
    case function_lreal_to_byte :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7842
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7843
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7846
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7847
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7848
            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
  7849
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7850
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7851
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7852
                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
  7853
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7854
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7860
        }
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
    }/*function_lreal_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7863
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7866
 *LREAL_TO_USINT
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
    case function_lreal_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7869
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7870
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7873
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7874
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7877
            last_type_symbol = param_data_type;
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
            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
  7880
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7881
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7882
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7883
                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
  7884
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7885
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7886
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7887
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7890
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7893
    }/*function_lreal_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7894
    break;
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
 *LREAL_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7898
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7899
    case function_lreal_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7902
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7905
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7908
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7909
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7910
            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
  7911
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7912
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7913
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7914
                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
  7915
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7916
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7917
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7918
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7919
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7920
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7921
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7922
        }
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
    }/*function_lreal_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7925
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7926
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
 *LREAL_TO_BOOL
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
    case function_lreal_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7931
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7932
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7935
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7936
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7939
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7940
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7941
            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
  7942
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7945
                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
  7946
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7947
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7950
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7951
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7952
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7953
        }
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
    }/*function_lreal_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7956
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7959
 *LREAL_TO_TIME
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
    case function_lreal_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7964
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7967
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7968
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7969
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7970
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7971
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7972
            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
  7973
            {
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
                function_name = (symbol_c*)(new pragma_c("__real_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7976
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7977
                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
  7978
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7979
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7980
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7983
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7984
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7985
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7986
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7987
    }/*function_lreal_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7988
    break;
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
 *LREAL_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7992
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7993
    case function_lreal_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7998
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  7999
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8000
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8001
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8002
            last_type_symbol = param_data_type;
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
            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
  8005
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8006
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8007
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8008
                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
  8009
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8010
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8011
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8012
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8013
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8016
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8017
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8018
    }/*function_lreal_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8019
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8022
 *BYTE_TO_REAL
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
    case function_byte_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8025
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8026
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8030
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8033
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8034
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8035
            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
  8036
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8037
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8038
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8039
                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
  8040
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8041
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8045
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8046
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8049
    }/*function_byte_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8050
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8051
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8052
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8053
 *BYTE_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8054
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8055
    case function_byte_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8058
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8061
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8064
            last_type_symbol = param_data_type;
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
            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
  8067
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8070
                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
  8071
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8072
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8078
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8079
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8080
    }/*function_byte_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8081
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8082
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8083
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8084
 *BYTE_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8085
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8086
    case function_byte_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8087
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8088
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8091
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8092
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8095
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8096
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8097
            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
  8098
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8099
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8100
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8101
                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
  8102
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8103
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8108
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8111
    }/*function_byte_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8112
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8115
 *BYTE_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8116
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8117
    case function_byte_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8118
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8119
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8120
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8123
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8124
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8125
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8126
            last_type_symbol = param_data_type;
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
            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
  8129
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8132
                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
  8133
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8134
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8139
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8140
        }
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
    }/*function_byte_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8143
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8144
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8145
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8146
 *BYTE_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8147
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8148
    case function_byte_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8149
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8150
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8151
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8154
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8157
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8163
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8164
                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
  8165
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8174
    }/*function_byte_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8175
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8176
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8177
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8178
 *BYTE_TO_DWORD
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
    case function_byte_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8181
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8182
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8183
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8184
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8185
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8186
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8189
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8190
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8191
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8195
                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
  8196
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8197
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8198
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8199
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8205
    }/*function_byte_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8206
    break;
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
 *BYTE_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8210
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8211
    case function_byte_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8214
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8215
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8216
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8217
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8220
            last_type_symbol = param_data_type;
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
            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
  8223
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8226
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8227
                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
  8228
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8229
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8232
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8235
        }
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
    }/*function_byte_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8238
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8239
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
 *BYTE_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8242
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8243
    case function_byte_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8244
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8245
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8246
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8247
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8248
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8249
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8250
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8251
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8252
            last_type_symbol = param_data_type;
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
            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
  8255
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8256
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8257
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8258
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8259
                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
  8260
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8261
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8265
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8266
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8269
    }/*function_byte_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8270
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8273
 *BYTE_TO_UDINT
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
    case function_byte_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8276
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8277
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8280
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8281
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8282
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8283
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8284
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8286
            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
  8287
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8288
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8289
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8290
                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
  8291
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8292
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8298
        }
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
    }/*function_byte_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8301
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8304
 *BYTE_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8305
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8306
    case function_byte_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8309
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8310
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8311
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8312
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8313
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8314
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8315
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8316
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8317
            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
  8318
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8321
                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
  8322
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8323
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8328
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8331
    }/*function_byte_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8332
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8335
 *BYTE_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8336
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8337
    case function_byte_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8338
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8339
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8346
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8347
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8348
            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
  8349
            {
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
                function_name = (symbol_c*)(new pragma_c("__bit_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8352
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8353
                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
  8354
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8355
                break;
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_byte_to_string*/
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
 *BYTE_TO_LWORD
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_byte_to_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8375
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8376
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8377
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8378
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8379
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8380
            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
  8381
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8382
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8383
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8384
                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
  8385
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8386
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8387
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8388
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8394
    }/*function_byte_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8395
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8396
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8397
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8398
 *BYTE_TO_UINT
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
    case function_byte_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8405
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8406
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8407
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8408
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8409
            last_type_symbol = param_data_type;
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
            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
  8412
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8413
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8414
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8415
                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
  8416
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8417
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8421
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8422
            ERROR;
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
    }/*function_byte_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8426
    break;
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
 *BYTE_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8430
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8431
    case function_byte_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8436
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8437
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8440
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8441
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8442
            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
  8443
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8444
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8445
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8446
                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
  8447
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8448
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8454
        }
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
    }/*function_byte_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8457
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8460
 *BYTE_TO_USINT
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
    case function_byte_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8463
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8464
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8467
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8468
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8471
            last_type_symbol = param_data_type;
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
            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
  8474
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8475
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8476
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8477
                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
  8478
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8479
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8480
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8481
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8484
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8487
    }/*function_byte_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8488
    break;
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
 *BYTE_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8492
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8493
    case function_byte_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8496
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8499
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8502
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8503
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8504
            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
  8505
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8506
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8507
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8508
                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
  8509
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8510
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8511
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8512
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8513
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8514
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8515
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8516
        }
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
    }/*function_byte_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8519
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8520
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
 *BYTE_TO_BOOL
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
    case function_byte_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8525
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8526
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8529
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8530
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8533
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8534
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8535
            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
  8536
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8539
                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
  8540
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8541
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8544
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8545
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8546
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8547
        }
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
    }/*function_byte_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8550
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8553
 *BYTE_TO_TIME
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
    case function_byte_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8558
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8561
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8562
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8563
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8564
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8565
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8566
            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
  8567
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8570
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8571
                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
  8572
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8573
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8574
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8577
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8578
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8579
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8580
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8581
    }/*function_byte_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8582
    break;
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
 *BYTE_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8586
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8587
    case function_byte_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8592
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8593
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8594
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8595
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8596
            last_type_symbol = param_data_type;
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
            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
  8599
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8600
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8601
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8602
                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
  8603
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8604
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8605
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8606
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8607
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8610
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8611
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8612
    }/*function_byte_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8613
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8616
 *USINT_TO_REAL
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
    case function_usint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8619
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8620
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8624
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8627
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8628
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8629
            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
  8630
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8631
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8632
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8633
                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
  8634
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8635
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8639
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8640
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8643
    }/*function_usint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8644
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8645
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8646
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8647
 *USINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8648
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8649
    case function_usint_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8652
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8655
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8658
            last_type_symbol = param_data_type;
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
            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
  8661
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8664
                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
  8665
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8666
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8672
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8673
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8674
    }/*function_usint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8675
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8676
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8677
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8678
 *USINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8679
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8680
    case function_usint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8681
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8682
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8685
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8686
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8689
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8690
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8691
            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
  8692
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8693
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8694
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8695
                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
  8696
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8697
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8702
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8705
    }/*function_usint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8706
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8709
 *USINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8710
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8711
    case function_usint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8712
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8713
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8714
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8717
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8718
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8719
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8720
            last_type_symbol = param_data_type;
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
            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
  8723
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8726
                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
  8727
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8728
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8733
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8734
        }
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
    }/*function_usint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8737
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8738
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8739
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8740
 *USINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8741
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8742
    case function_usint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8743
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8744
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8745
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8748
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8751
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8757
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8758
                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
  8759
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8768
    }/*function_usint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8769
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8770
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8771
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8772
 *USINT_TO_DWORD
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
    case function_usint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8775
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8776
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8777
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8778
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8779
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8780
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8783
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8784
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8785
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8789
                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
  8790
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8791
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8792
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8793
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8799
    }/*function_usint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8800
    break;
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
 *USINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8804
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8805
    case function_usint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8808
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8809
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8810
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8811
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8814
            last_type_symbol = param_data_type;
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
            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
  8817
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8820
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8821
                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
  8822
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8823
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8826
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8829
        }
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
    }/*function_usint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8832
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8833
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
 *USINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8836
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8837
    case function_usint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8838
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8839
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8840
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8841
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8842
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8843
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8844
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8845
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8846
            last_type_symbol = param_data_type;
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
            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
  8849
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8850
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8851
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8852
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8853
                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
  8854
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8855
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8859
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8860
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8863
    }/*function_usint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8864
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8867
 *USINT_TO_UDINT
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
    case function_usint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8870
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8871
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8874
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8875
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8876
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8877
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8878
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8879
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8880
            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
  8881
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8882
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8883
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8884
                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
  8885
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8886
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8892
        }
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
    }/*function_usint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8895
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8898
 *USINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8899
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8900
    case function_usint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8903
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8904
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8905
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8906
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8907
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8908
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8909
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8910
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8911
            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
  8912
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8915
                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
  8916
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8917
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8922
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8925
    }/*function_usint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8926
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8929
 *USINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8930
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8931
    case function_usint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8932
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8933
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8940
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8941
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8942
            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
  8943
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8946
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8947
                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
  8948
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8949
                break;
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_usint_to_string*/
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
 *USINT_TO_LWORD
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_usint_to_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8969
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8970
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8971
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8972
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8973
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8974
            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
  8975
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8976
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8977
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8978
                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
  8979
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8980
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8981
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8982
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8988
    }/*function_usint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8989
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8990
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8991
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8992
 *USINT_TO_UINT
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
    case function_usint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  8999
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9000
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9001
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9002
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9003
            last_type_symbol = param_data_type;
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
            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
  9006
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9007
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9008
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9009
                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
  9010
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9011
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9015
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9016
            ERROR;
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
    }/*function_usint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9020
    break;
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
 *USINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9024
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9025
    case function_usint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9030
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9031
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9034
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9035
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9036
            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
  9037
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9038
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9039
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9040
                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
  9041
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9042
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9048
        }
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
    }/*function_usint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9051
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9054
 *USINT_TO_BYTE
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
    case function_usint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9057
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9058
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9061
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9062
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9065
            last_type_symbol = param_data_type;
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
            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
  9068
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9069
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9070
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9071
                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
  9072
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9073
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9074
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9075
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9078
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9081
    }/*function_usint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9082
    break;
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
 *USINT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9086
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9087
    case function_usint_to_ulint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9090
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9093
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9096
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9097
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9098
            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
  9099
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9100
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9101
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9102
                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
  9103
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9104
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9105
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9106
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9107
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9108
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9109
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9110
        }
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
    }/*function_usint_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9113
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9114
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
 *USINT_TO_BOOL
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
    case function_usint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9119
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9120
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9123
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9124
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9127
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9128
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9129
            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
  9130
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9133
                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
  9134
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9135
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9138
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9139
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9140
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9141
        }
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
    }/*function_usint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9144
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9147
 *USINT_TO_TIME
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
    case function_usint_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9152
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9155
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9156
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9157
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9158
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9159
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9160
            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
  9161
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9164
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9165
                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
  9166
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9167
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9168
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9171
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9172
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9173
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9174
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9175
    }/*function_usint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9176
    break;
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
 *USINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9180
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9181
    case function_usint_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9186
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9187
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9188
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9189
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9190
            last_type_symbol = param_data_type;
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
            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
  9193
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9194
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9195
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9196
                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
  9197
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9198
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9199
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9200
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9201
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9204
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9205
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9206
    }/*function_usint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9207
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9210
 *ULINT_TO_REAL
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
    case function_ulint_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9213
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9214
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9218
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9221
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9222
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9223
            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
  9224
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9225
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9226
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9227
                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
  9228
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9229
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9233
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9234
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9237
    }/*function_ulint_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9238
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9239
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9240
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9241
 *ULINT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9242
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9243
    case function_ulint_to_sint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9246
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9249
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9252
            last_type_symbol = param_data_type;
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
            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
  9255
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9258
                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
  9259
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9260
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9266
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9267
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9268
    }/*function_ulint_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9269
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9270
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9271
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9272
 *ULINT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9273
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9274
    case function_ulint_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9275
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9276
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9279
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9280
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9283
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9284
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9285
            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
  9286
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9287
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9288
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9289
                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
  9290
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9291
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9296
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9299
    }/*function_ulint_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9300
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9303
 *ULINT_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9304
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9305
    case function_ulint_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9306
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9307
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9308
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9311
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9312
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9313
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9314
            last_type_symbol = param_data_type;
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
            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
  9317
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9320
                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
  9321
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9322
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9327
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9328
        }
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
    }/*function_ulint_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9331
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9332
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9333
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9334
 *ULINT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9335
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9336
    case function_ulint_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9337
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9338
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9339
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9342
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9345
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9351
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9352
                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
  9353
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9362
    }/*function_ulint_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9363
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9364
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9365
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9366
 *ULINT_TO_DWORD
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
    case function_ulint_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9369
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9370
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9371
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9372
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9373
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9374
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9377
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9378
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9379
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9383
                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
  9384
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9385
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9386
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9387
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9393
    }/*function_ulint_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9394
    break;
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
 *ULINT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9398
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9399
    case function_ulint_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9402
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9403
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9404
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9405
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9408
            last_type_symbol = param_data_type;
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
            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
  9411
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9414
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9415
                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
  9416
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9417
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9420
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9423
        }
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
    }/*function_ulint_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9426
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9427
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
 *ULINT_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9430
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9431
    case function_ulint_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9432
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9433
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9434
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9435
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9436
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9437
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9438
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9439
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9440
            last_type_symbol = param_data_type;
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
            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
  9443
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9444
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9445
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9446
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9447
                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
  9448
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9449
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9453
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9454
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9457
    }/*function_ulint_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9458
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9461
 *ULINT_TO_UDINT
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
    case function_ulint_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9464
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9465
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9468
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9469
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9470
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9471
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9472
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9473
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9474
            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
  9475
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9476
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9477
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9478
                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
  9479
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9480
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9486
        }
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
    }/*function_ulint_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9489
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9492
 *ULINT_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9493
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9494
    case function_ulint_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9497
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9498
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9499
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9500
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9501
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9502
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9503
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9504
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9505
            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
  9506
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9509
                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
  9510
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9511
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9516
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9519
    }/*function_ulint_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9520
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9523
 *ULINT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9524
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9525
    case function_ulint_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9526
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9527
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9534
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9535
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9536
            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
  9537
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9540
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9541
                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
  9542
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9543
                break;
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_ulint_to_string*/
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
 *ULINT_TO_LWORD
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_ulint_to_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9563
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9564
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9565
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9566
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9567
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9568
            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
  9569
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9570
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9571
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9572
                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
  9573
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9574
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9575
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9576
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9582
    }/*function_ulint_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9583
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9584
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9585
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9586
 *ULINT_TO_UINT
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
    case function_ulint_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9593
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9594
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9595
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9596
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9597
            last_type_symbol = param_data_type;
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
            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
  9600
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9601
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9602
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9603
                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
  9604
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9605
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9609
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9610
            ERROR;
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
    }/*function_ulint_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9614
    break;
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
 *ULINT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9618
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9619
    case function_ulint_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9624
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9625
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9628
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9629
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9630
            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
  9631
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9632
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9633
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9634
                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
  9635
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9636
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9642
        }
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
    }/*function_ulint_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9645
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9648
 *ULINT_TO_BYTE
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
    case function_ulint_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9651
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9652
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9655
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9656
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9659
            last_type_symbol = param_data_type;
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
            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
  9662
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9663
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9664
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9665
                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
  9666
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9667
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9668
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9669
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9672
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9675
    }/*function_ulint_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9676
    break;
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
 *ULINT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9680
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9681
    case function_ulint_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9684
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9687
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9690
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9691
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9692
            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
  9693
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9694
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9695
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9696
                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
  9697
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9698
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9699
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9700
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9701
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9702
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9703
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9704
        }
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
    }/*function_ulint_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9707
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9708
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
 *ULINT_TO_BOOL
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
    case function_ulint_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9713
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9714
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9717
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9718
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9721
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9722
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9723
            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
  9724
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9727
                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
  9728
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9729
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9732
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9733
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9734
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9735
        }
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
    }/*function_ulint_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9738
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9741
 *ULINT_TO_TIME
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
    case function_ulint_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9746
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9749
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9750
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9751
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9752
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9753
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9754
            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
  9755
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9758
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9759
                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
  9760
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9761
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9762
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9765
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9766
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9767
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9769
    }/*function_ulint_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9770
    break;
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
 *ULINT_TO_INT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9774
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9775
    case function_ulint_to_int :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9780
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9781
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9782
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9783
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9784
            last_type_symbol = param_data_type;
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
            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
  9787
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9788
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9789
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9790
                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
  9791
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9792
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9793
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9794
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9795
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9798
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9799
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9800
    }/*function_ulint_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9801
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9804
 *BOOL_TO_REAL
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
    case function_bool_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9807
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9808
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9812
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9815
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9816
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9817
            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
  9818
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9819
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9820
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9821
                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
  9822
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9823
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9827
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9828
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9831
    }/*function_bool_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9832
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9833
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9834
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9835
 *BOOL_TO_SINT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9836
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9837
    case function_bool_to_sint :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9838
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9839
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9840
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9841
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9842
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9843
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9844
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9845
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9846
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9847
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9848
            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
  9849
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9850
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9851
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9852
                symbol_c * return_type_symbol = &search_constant_type_c::sint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9853
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9854
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9857
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9858
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9859
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9860
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9861
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9862
    }/*function_bool_to_sint*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9863
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9864
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
  9865
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9866
 *BOOL_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9867
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9868
    case function_bool_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9869
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9870
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9873
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9874
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9877
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9878
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9879
            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
  9880
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9881
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9882
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9883
                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
  9884
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9885
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9890
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9893
    }/*function_bool_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9894
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9897
 *BOOL_TO_DINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9898
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9899
    case function_bool_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9900
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9901
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9902
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9905
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9906
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9907
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9908
            last_type_symbol = param_data_type;
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
            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
  9911
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9914
                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
  9915
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9916
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9921
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9922
        }
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
    }/*function_bool_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9925
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9926
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9927
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9928
 *BOOL_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9929
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9930
    case function_bool_to_date :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9931
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9932
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9933
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9936
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9939
            last_type_symbol = param_data_type;
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
            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
  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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9945
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9946
                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
  9947
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9956
    }/*function_bool_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9957
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9958
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9959
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9960
 *BOOL_TO_DWORD
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
    case function_bool_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9963
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9964
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9965
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9966
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9967
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9968
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9971
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9972
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9973
            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
  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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9977
                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
  9978
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9979
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9980
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9981
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9987
    }/*function_bool_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9988
    break;
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
 *BOOL_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9992
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9993
    case function_bool_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9996
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9997
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9998
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
  9999
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10002
            last_type_symbol = param_data_type;
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
            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
 10005
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10008
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10009
                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
 10010
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10011
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10014
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10017
        }
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
    }/*function_bool_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10020
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10021
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
 *BOOL_TO_TOD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10024
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10025
    case function_bool_to_tod :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10026
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10027
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10028
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10029
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10030
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10031
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10032
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10033
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10034
            last_type_symbol = param_data_type;
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
            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
 10037
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10038
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10039
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10040
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10041
                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
 10042
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10043
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10047
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10048
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10051
    }/*function_bool_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10052
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10055
 *BOOL_TO_UDINT
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
    case function_bool_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10058
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10059
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10062
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10063
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10064
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10065
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10066
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10067
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10068
            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
 10069
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10070
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10071
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10072
                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
 10073
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10074
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10080
        }
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
    }/*function_bool_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10083
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10086
 *BOOL_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10087
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10088
    case function_bool_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10091
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10092
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10093
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10094
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10095
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10096
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10097
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10098
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10099
            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
 10100
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10103
                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
 10104
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10105
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10110
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10113
    }/*function_bool_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10114
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10117
 *BOOL_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10118
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10119
    case function_bool_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10120
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10121
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10128
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10129
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10130
            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
 10131
            {
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
                function_name = (symbol_c*)(new pragma_c("__bool_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10134
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10135
                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
 10136
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10137
                break;
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_bool_to_string*/
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
 *BOOL_TO_LWORD
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_bool_to_lword :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10157
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10158
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10159
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10160
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10161
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10162
            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
 10163
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10164
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10165
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10166
                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
 10167
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10168
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10169
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10170
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10176
    }/*function_bool_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10177
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10178
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10179
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10180
 *BOOL_TO_UINT
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
    case function_bool_to_uint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10187
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10188
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10189
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10190
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10191
            last_type_symbol = param_data_type;
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
            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
 10194
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10195
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10196
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10197
                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
 10198
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10199
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10203
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10204
            ERROR;
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
    }/*function_bool_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10208
    break;
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
 *BOOL_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10212
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10213
    case function_bool_to_lreal :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10218
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10219
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10222
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10223
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10224
            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
 10225
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10226
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10227
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10228
                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
 10229
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10230
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10236
        }
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
    }/*function_bool_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10239
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10242
 *BOOL_TO_BYTE
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
    case function_bool_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10245
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10246
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10249
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10250
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10253
            last_type_symbol = param_data_type;
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
            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
 10256
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10257
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10258
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10259
                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
 10260
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10261
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10262
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10263
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10266
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10269
    }/*function_bool_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10270
    break;
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
 *BOOL_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10274
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10275
    case function_bool_to_usint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10278
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10281
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10284
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10285
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10286
            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
 10287
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10288
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10289
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10290
                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
 10291
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10292
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10293
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10294
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10295
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10296
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10297
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10298
        }
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
    }/*function_bool_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10301
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10302
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
 *BOOL_TO_ULINT
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
    case function_bool_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10307
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10308
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10311
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10312
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10315
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10316
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10317
            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
 10318
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10321
                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
 10322
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10323
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10326
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10327
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10328
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10329
        }
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
    }/*function_bool_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10332
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10335
 *BOOL_TO_TIME
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
    case function_bool_to_time :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10340
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10343
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10344
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10345
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10346
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10347
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10348
            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
 10349
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10350
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10351
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10352
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10353
                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
 10354
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10355
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10356
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10357
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10358
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10359
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10360
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10361
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10362
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10363
    }/*function_bool_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10364
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10365
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10366
/****
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10367
 *BOOL_TO_INT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10368
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10369
    case function_bool_to_int :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10370
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10371
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10372
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10373
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10374
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10375
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10376
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10377
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10378
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10379
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10380
            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
 10381
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10382
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10383
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10384
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10385
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10386
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10387
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10388
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10389
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10390
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10391
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10392
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10393
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10394
    }/*function_bool_to_int*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10395
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10396
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10397
/****
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10398
 *TIME_TO_REAL
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
    case function_time_to_real :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10401
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10402
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10406
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10409
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10410
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10411
            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
 10412
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10413
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10414
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10415
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10416
                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
 10417
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10418
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10421
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10422
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10423
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10424
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10425
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10426
    }/*function_time_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10427
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10428
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
 *TIME_TO_SINT
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
    case function_time_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10433
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10434
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10438
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10439
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10440
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10441
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10442
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10443
            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
 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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10447
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10448
                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
 10449
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10450
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10454
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10455
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10458
    }/*function_time_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10459
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10460
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10461
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10462
 *TIME_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10463
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10464
    case function_time_to_lint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10467
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10470
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10473
            last_type_symbol = param_data_type;
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
            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
 10476
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10479
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10480
                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
 10481
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10482
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10483
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10487
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10488
        }
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
    }/*function_time_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10491
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10492
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10493
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10494
 *TIME_TO_DINT
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
    case function_time_to_dint :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10499
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10500
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10501
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10502
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10505
            last_type_symbol = param_data_type;
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
            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
 10508
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10509
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10510
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10511
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10512
                symbol_c * return_type_symbol = &search_constant_type_c::dint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10513
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10514
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10520
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10521
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10522
    }/*function_time_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10523
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10524
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10525
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10526
 *TIME_TO_DWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10527
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10528
    case function_time_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10529
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10530
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10533
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10534
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10537
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10538
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10539
            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
 10540
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10541
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10542
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10543
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10544
                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
 10545
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10546
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10547
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10552
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10553
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10554
    }/*function_time_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10555
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10556
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10557
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10558
 *TIME_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10559
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10560
    case function_time_to_udint :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10566
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10569
            last_type_symbol = param_data_type;
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
            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
 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_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10575
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10576
                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
 10577
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10578
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10583
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10586
    }/*function_time_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10587
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10590
 *TIME_TO_WORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10591
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10592
    case function_time_to_word :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10593
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10594
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10595
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10598
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10599
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10600
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10601
            last_type_symbol = param_data_type;
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
            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
 10604
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10607
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10608
                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
 10609
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10610
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10611
                
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
            
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
            ERROR;
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
    }/*function_time_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10619
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10620
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
 *TIME_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10623
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10624
    case function_time_to_string :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10625
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10626
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10629
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10630
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10631
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10632
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10633
            last_type_symbol = param_data_type;
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
            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
 10636
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10637
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10638
                function_name = (symbol_c*)(new pragma_c("__time_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10639
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10640
                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
 10641
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10642
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10647
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10648
        }
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
    }/*function_time_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10651
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10652
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10653
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10654
 *TIME_TO_LWORD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10655
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10656
    case function_time_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10657
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10658
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10659
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10662
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10665
            last_type_symbol = param_data_type;
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
            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
 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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10671
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10672
                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
 10673
                function_type_prefix = return_type_symbol;
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10682
    }/*function_time_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10683
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10684
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10685
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10686
 *TIME_TO_UINT
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
    case function_time_to_uint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10689
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10690
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10691
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10692
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10693
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10694
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10697
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10698
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10699
            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
 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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10703
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10704
                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
 10705
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10706
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10707
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10711
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10712
        }
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
    }/*function_time_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10715
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10718
 *TIME_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10719
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10720
    case function_time_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10721
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10722
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10723
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10724
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10725
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10726
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10727
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10728
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10729
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10730
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10731
            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
 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
                function_name = (symbol_c*)(new pragma_c("__time_to_real"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10735
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10736
                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
 10737
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10738
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10739
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10740
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10746
    }/*function_time_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10747
    break;
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
 *TIME_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10751
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10752
    case function_time_to_byte :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10755
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10756
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10757
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10758
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10761
            last_type_symbol = param_data_type;
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
            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
 10764
            {
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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10767
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10768
                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
 10769
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10770
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10773
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10776
        }
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
    }/*function_time_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10779
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10780
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
 *TIME_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10783
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10784
    case function_time_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10785
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10786
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10787
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10788
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10789
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10790
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10791
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10792
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10793
            last_type_symbol = param_data_type;
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
            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
 10796
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10797
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10798
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10799
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10800
                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
 10801
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10802
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10806
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10807
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10810
    }/*function_time_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10811
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10814
 *TIME_TO_ULINT
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
    case function_time_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10817
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10818
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10821
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10822
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10823
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10824
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10825
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10826
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10827
            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
 10828
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10829
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10830
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10831
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10832
                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
 10833
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10834
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10835
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10839
            ERROR;
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
    }/*function_time_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10843
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10844
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
 *TIME_TO_INT
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
    case function_time_to_int :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10849
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10850
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10851
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10854
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10855
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10856
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10857
            last_type_symbol = param_data_type;
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::time_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
                function_name = (symbol_c*)(new pragma_c("__time_to_int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10863
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10864
                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
 10865
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10866
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10872
        }
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
    }/*function_time_to_int*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10875
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10878
 *INT_TO_REAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10879
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10880
    case function_int_to_real :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10883
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10884
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10885
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10886
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10887
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10888
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10889
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10890
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10891
            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
 10892
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10895
                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
 10896
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10897
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10902
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10905
    }/*function_int_to_real*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10906
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10907
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10908
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10909
 *INT_TO_SINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10910
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10911
    case function_int_to_sint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10912
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10913
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10914
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10915
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10916
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10917
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10918
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10919
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10920
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10921
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10922
            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
 10923
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10924
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10925
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10926
                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
 10927
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10928
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10929
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10930
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10931
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10932
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10933
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10934
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10935
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10936
    }/*function_int_to_sint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10937
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10938
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10939
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10940
 *INT_TO_LINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10941
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10942
    case function_int_to_lint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10943
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10944
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10945
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10948
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10949
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10950
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10951
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10952
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10953
            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
 10954
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10955
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10956
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 10957
                symbol_c * return_type_symbol = &search_constant_type_c::lint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10958
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10959
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10962
            
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
            ERROR;
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
    }/*function_int_to_lint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10968
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10971
 *INT_TO_DINT
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
    case function_int_to_dint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10974
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10975
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10976
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10979
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10982
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10983
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10984
            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
 10985
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10986
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10987
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10988
                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
 10989
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10990
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10991
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10995
            ERROR;
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
    }/*function_int_to_dint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 10999
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11000
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
 *INT_TO_DATE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11003
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11004
    case function_int_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11007
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11010
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11011
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11012
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11013
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11014
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11015
            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
 11016
            {
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11019
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11020
                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
 11021
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11022
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11028
        }
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
    }/*function_int_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11031
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11034
 *INT_TO_DWORD
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
    case function_int_to_dword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11037
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11038
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11041
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11042
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11045
            last_type_symbol = param_data_type;
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
            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
 11048
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11049
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11050
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11051
                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
 11052
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11053
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11054
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11055
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11058
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11059
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11060
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11061
    }/*function_int_to_dword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11062
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11063
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11064
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11065
 *INT_TO_DT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11066
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11067
    case function_int_to_dt :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11070
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11073
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11076
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11077
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11078
            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
 11079
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11080
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11081
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11082
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11083
                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
 11084
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11085
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11086
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11087
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11088
            
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
            ERROR;
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
    }/*function_int_to_dt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11094
    break;
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
 *INT_TO_TOD
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
    case function_int_to_tod :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11102
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11103
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11104
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11105
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11106
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11107
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11108
            last_type_symbol = param_data_type;
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
            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
 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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11114
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11115
                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
 11116
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11117
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11118
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11119
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11120
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11121
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11122
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11123
        }
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
    }/*function_int_to_tod*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11126
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11127
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
 *INT_TO_UDINT
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
    case function_int_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11132
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11133
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11136
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11137
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11140
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11141
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11142
            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
 11143
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11146
                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
 11147
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11148
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11151
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11152
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11153
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11154
        }
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
    }/*function_int_to_udint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11157
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11160
 *INT_TO_WORD
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
    case function_int_to_word :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11165
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11168
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11169
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11170
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11171
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11172
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11173
            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
 11174
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11177
                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
 11178
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11179
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11180
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11181
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11184
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11185
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11186
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11187
    }/*function_int_to_word*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11188
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11189
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
 *INT_TO_STRING
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11192
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11193
    case function_int_to_string :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11199
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11202
            last_type_symbol = param_data_type;
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
            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
 11205
            {
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
                function_name = (symbol_c*)(new pragma_c("__sint_to_string"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11208
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11209
                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
 11210
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11211
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11212
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11213
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11214
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11217
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11218
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11219
    }/*function_int_to_string*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11220
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11223
 *INT_TO_LWORD
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
    case function_int_to_lword :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11226
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11227
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11231
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11234
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11235
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11236
            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
 11237
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11238
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11239
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11240
                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
 11241
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11242
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11246
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11247
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11250
    }/*function_int_to_lword*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11251
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11252
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11253
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11254
 *INT_TO_UINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11255
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11256
    case function_int_to_uint :
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 *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11259
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11262
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11265
            last_type_symbol = param_data_type;
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
            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
 11268
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11271
                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
 11272
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11273
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11279
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11280
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11281
    }/*function_int_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11282
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11283
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11284
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11285
 *INT_TO_LREAL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11286
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11287
    case function_int_to_lreal :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11288
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11289
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11292
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11293
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11296
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11297
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11298
            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
 11299
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11300
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11301
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11302
                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
 11303
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11304
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11309
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11312
    }/*function_int_to_lreal*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11313
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11316
 *INT_TO_BYTE
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11317
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11318
    case function_int_to_byte :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11319
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11320
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11321
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11324
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11325
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11326
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11327
            last_type_symbol = param_data_type;
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
            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
 11330
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11333
                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
 11334
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11335
                break;
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
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11340
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11341
        }
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
    }/*function_int_to_byte*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11344
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11345
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11346
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11347
 *INT_TO_USINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11348
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11349
    case function_int_to_usint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11350
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11351
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11352
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11355
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11358
            last_type_symbol = param_data_type;
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
            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
 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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11364
                symbol_c * return_type_symbol = &search_constant_type_c::usint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11365
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11366
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11367
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11371
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11372
        }
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
    }/*function_int_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11375
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11378
 *INT_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11379
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11380
    case function_int_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11381
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11382
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11383
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11384
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11385
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11386
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11387
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11388
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11389
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11390
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11391
            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
 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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11395
                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
 11396
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11397
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11400
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11403
        }
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
    }/*function_int_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11406
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11407
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
 *INT_TO_BOOL
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11410
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11411
    case function_int_to_bool :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11412
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11413
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11414
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11415
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11416
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11417
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11418
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11419
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11420
            last_type_symbol = param_data_type;
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
            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
 11423
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11424
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11425
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11426
                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
 11427
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11428
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11429
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11433
            ERROR;
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
    }/*function_int_to_bool*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11437
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11438
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
 *INT_TO_TIME
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
    case function_int_to_time :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11443
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11444
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11445
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_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11448
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11449
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11450
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11451
            last_type_symbol = param_data_type;
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
                function_name = (symbol_c*)(new pragma_c("__int_to_time"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11457
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11458
                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
 11459
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11460
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11466
        }
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
    }/*function_int_to_time*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11469
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11472
 *TRUNC
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11473
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11474
    case function_trunc :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11477
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11478
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11479
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11480
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11481
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11482
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11483
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11484
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11485
            if(search_expression_type->is_real_type(IN_type_symbol))
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11486
            {
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
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11489
                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
 11490
                function_type_prefix = (symbol_c*)(new pragma_c("int"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11491
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11496
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11499
    }/*function_trunc*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11500
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11503
 *BCD_TO_UDINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11504
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11505
    case function_bcd_to_udint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11506
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11507
        symbol_c *last_type_symbol = NULL;
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
        {
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 = &this->default_variable_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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11514
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11515
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11516
            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
 11517
            {
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
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11520
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11521
                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
 11522
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11523
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11524
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11525
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11526
            
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_bcd_to_udint*/
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
 *BCD_TO_UINT
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_bcd_to_uint :
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11543
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11544
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11545
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11546
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11547
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11548
            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
 11549
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11550
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11551
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11552
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11553
                symbol_c * return_type_symbol = &search_constant_type_c::uint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11554
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11555
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11556
                
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11561
        }
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
    }/*function_bcd_to_uint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11564
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11565
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
 *BCD_TO_ULINT
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11568
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11569
    case function_bcd_to_ulint :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11570
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11571
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11572
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11575
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11576
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11577
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11578
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11579
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11580
            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
 11581
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11582
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11583
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11584
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11585
                symbol_c * return_type_symbol = &search_constant_type_c::ulint_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11586
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11587
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11588
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11589
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11595
    }/*function_bcd_to_ulint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11596
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11597
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11598
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11599
 *BCD_TO_USINT
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
    case function_bcd_to_usint :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11606
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11607
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11608
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11609
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11610
            last_type_symbol = param_data_type;
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
            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
 11613
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11614
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11615
                function_name = (symbol_c*)(new pragma_c("__bcd_to_uint"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11616
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11617
                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
 11618
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11619
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11622
            
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
            ERROR;
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
    }/*function_bcd_to_usint*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11628
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11631
 *UDINT_TO_BCD
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
    case function_udint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11634
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11635
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11636
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11639
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11642
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11643
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11644
            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
 11645
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11646
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11647
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11648
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11649
                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
 11650
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11651
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11655
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11656
            ERROR;
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
    }/*function_udint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11660
    break;
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
 *UINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11664
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11665
    case function_uint_to_bcd :
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
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11670
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11671
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11674
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11675
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11676
            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
 11677
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11678
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11679
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11680
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11681
                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
 11682
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11683
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11684
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11688
            ERROR;
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
    }/*function_uint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11692
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11693
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
 *USINT_TO_BCD
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11696
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11697
    case function_usint_to_bcd :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11700
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11703
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11704
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11705
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11706
            last_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11707
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11708
            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
 11709
            {
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
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11712
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11713
                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
 11714
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11715
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11721
        }
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
    }/*function_usint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11724
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11727
 *ULINT_TO_BCD
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
    case function_ulint_to_bcd :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11730
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11731
        symbol_c *last_type_symbol = NULL;
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
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11734
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11735
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11738
            last_type_symbol = param_data_type;
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
            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
 11741
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11742
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11743
                function_name = (symbol_c*)(new pragma_c("__uint_to_bcd"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11744
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11745
                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
 11746
                function_type_prefix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11747
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11748
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11753
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11754
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11755
    }/*function_ulint_to_bcd*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11756
    break;
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
 *DATE_AND_TIME_TO_TIME_OF_DAY
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
    case function_date_and_time_to_time_of_day :
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11762
    {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11763
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11767
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11768
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11769
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11770
            last_type_symbol = param_data_type;
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
            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
 11773
            {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11774
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11775
                function_name = (symbol_c*)(new pragma_c("__date_and_time_to_time_of_day"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11776
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11777
                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
 11778
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11779
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11780
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11781
            
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
            ERROR;
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
    }/*function_date_and_time_to_time_of_day*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11787
    break;
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
 *DATE_AND_TIME_TO_DATE
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
    case function_date_and_time_to_date :
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
        symbol_c *last_type_symbol = NULL;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11795
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11796
        {
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11797
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11798
            symbol_c *IN_param_value = &this->default_variable_name;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11799
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11800
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11801
            last_type_symbol = param_data_type;
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
            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
 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
                function_name = (symbol_c*)(new pragma_c("__date_and_time_to_date"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11807
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11808
                symbol_c * return_type_symbol = &search_constant_type_c::date_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11809
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11810
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11811
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11812
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11813
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11814
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11817
    }/*function_date_and_time_to_date*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11818
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11819
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11820
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11821
 *ABS
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
    case function_abs :
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
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11829
            symbol_c *IN_param_value = &this->default_variable_name;
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
            symbol_c *IN_type_symbol = param_data_type;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11832
            last_type_symbol = param_data_type;
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
            if(search_expression_type->is_num_type(IN_type_symbol))
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11837
                function_name = (symbol_c*)(new pragma_c("__abs_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11838
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11839
                symbol_c * return_type_symbol = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11840
                function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11841
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11844
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11845
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11846
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11847
        }
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
    }/*function_abs*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11850
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11853
 *SQRT
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
    case function_sqrt :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11856
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11857
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11858
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11859
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11860
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11861
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11862
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11863
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11864
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11865
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11866
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11867
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11868
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11869
                function_name = (symbol_c*)(new pragma_c("sqrt"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11870
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11871
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11872
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11873
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11874
            }
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11877
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11878
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11879
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11880
    }/*function_sqrt*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11881
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11882
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
 *LN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11885
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11886
    case function_ln :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11887
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11888
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11889
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11890
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11891
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11892
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11893
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11894
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11895
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11896
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11897
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11898
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11899
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11900
                function_name = (symbol_c*)(new pragma_c("ln"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11901
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11902
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11903
                break;
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
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11906
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11907
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11908
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11909
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11910
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11911
    }/*function_ln*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11912
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11913
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
 *LOG
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
    case function_log :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11918
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11919
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11920
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11921
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11922
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11923
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11924
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11925
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11926
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11927
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11928
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11929
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11930
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11931
                function_name = (symbol_c*)(new pragma_c("log"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11932
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11933
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11934
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11935
                
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11939
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11940
        }
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
    }/*function_log*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11943
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11944
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11945
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11946
 *EXP
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
    case function_exp :
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
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11951
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11952
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11953
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11954
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11955
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11956
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11957
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11958
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11959
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11960
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11961
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11962
                function_name = (symbol_c*)(new pragma_c("exp"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11963
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11964
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11965
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11966
                
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
            
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11971
        }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11972
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11973
    }/*function_exp*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11974
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11975
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11976
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11977
 *SIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11978
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11979
    case function_sin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11980
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11981
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11982
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11983
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11984
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11985
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11986
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11987
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11988
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11989
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11990
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11991
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11992
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11993
                function_name = (symbol_c*)(new pragma_c("sin"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11994
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 11995
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11996
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 11997
                
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
            
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
            ERROR;
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
    }/*function_sin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12005
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12006
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
 *COS
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12009
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12010
    case function_cos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12011
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12012
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12013
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12014
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12015
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12016
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12017
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12018
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12019
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12020
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12021
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12022
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12023
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12024
                function_name = (symbol_c*)(new pragma_c("cos"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12025
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12026
                symbol_c * return_type_symbol = IN_type_symbol;
149
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
            
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12035
    }/*function_cos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12036
    break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12037
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12038
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12039
 *TAN
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
    case function_tan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12042
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12043
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12044
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12045
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12046
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12047
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12048
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12049
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12050
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12051
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12052
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12053
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12054
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12055
                function_name = (symbol_c*)(new pragma_c("tan"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12056
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12057
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12058
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12059
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12060
            }
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
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12066
    }/*function_tan*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12067
    break;
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
 *ASIN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12071
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12072
    case function_asin :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12073
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12074
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12075
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12076
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12077
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12078
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12079
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12080
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12081
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12082
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12083
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12084
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12085
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12086
                function_name = (symbol_c*)(new pragma_c("asin"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12087
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12088
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12089
                break;
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
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12093
            
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12094
            ERROR;
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
        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12097
    }/*function_asin*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12098
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12101
 *ACOS
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
    case function_acos :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12104
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12105
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12106
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12107
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12108
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12109
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12110
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12111
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12112
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12113
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12114
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12115
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12116
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12117
                function_name = (symbol_c*)(new pragma_c("acos"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12118
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12119
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12120
                break;
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
            }
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
            ERROR;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12126
        }
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
    }/*function_acos*/
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12129
    break;
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
/****
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12132
 *ATAN
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12133
 */
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12134
    case function_atan :
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12135
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12136
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12137
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12138
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12139
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12140
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12141
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12142
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12143
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12144
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12145
            if(search_expression_type->is_real_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12146
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12147
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12148
                function_name = (symbol_c*)(new pragma_c("atan"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12149
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12150
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12151
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12152
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12153
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12154
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12155
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12156
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12157
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12158
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12159
    }/*function_atan*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12160
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12161
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12162
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12163
 *ADD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12164
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12165
    case function_add :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12166
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12167
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12168
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12169
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12170
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12171
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12172
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12173
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12174
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12175
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12176
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12177
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12178
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12179
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12180
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12181
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12182
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12183
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12184
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12185
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12186
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12187
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12188
                    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
 12189
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12190
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12191
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12192
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12193
                        function_name = (symbol_c*)(new pragma_c("__add_"));
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
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12196
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12197
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12198
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12199
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12200
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12201
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12202
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12203
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12204
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12205
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12206
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12207
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12208
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12209
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12210
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12211
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12212
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12213
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12214
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12215
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12216
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12217
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12218
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12219
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12220
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12221
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12222
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12223
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12224
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12225
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12226
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12227
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12228
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12229
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12230
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12231
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12232
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12233
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12234
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12235
            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
 12236
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12237
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12238
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12239
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12240
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12241
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12242
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12243
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12244
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12245
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12246
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12247
                    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
 12248
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12249
                    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
 12250
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12251
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12252
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12253
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12254
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12255
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12256
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12257
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12258
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12259
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12260
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12261
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12262
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12263
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12264
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12265
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12266
            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
 12267
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12268
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12269
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12270
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12271
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12272
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12273
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12274
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12275
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12276
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12277
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12278
                    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
 12279
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12280
                    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
 12281
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12282
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12283
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12284
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12285
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12286
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12287
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12288
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12289
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12290
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12291
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12292
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12293
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12294
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12295
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12296
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12297
            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
 12298
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12299
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12300
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12301
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12302
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12303
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12304
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12305
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12306
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12307
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12308
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12309
                    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
 12310
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12311
                    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
 12312
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12313
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12314
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12315
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12316
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12317
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12318
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12319
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12320
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12321
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12322
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12323
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12324
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12325
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12326
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12327
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12328
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12329
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12330
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12331
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12332
    }/*function_add*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12333
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12334
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12335
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12336
 *MUL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12337
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12338
    case function_mul :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12339
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12340
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12341
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12342
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12343
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12344
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12345
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12346
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12347
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12348
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12349
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12350
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12351
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12352
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12353
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12354
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12355
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12356
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12357
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12358
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12359
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12360
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12361
                    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
 12362
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12363
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12364
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12365
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12366
                        function_name = (symbol_c*)(new pragma_c("__mul_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12367
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12368
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12369
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12370
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12371
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12372
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12373
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12374
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12375
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12376
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12377
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12378
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12379
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12380
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12381
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12382
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12383
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12384
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12385
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12386
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12387
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12388
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12389
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12390
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12391
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12392
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12393
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12394
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12395
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12396
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12397
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12398
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12399
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12400
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12401
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12402
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12403
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12404
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12405
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12406
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12407
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12408
            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
 12409
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12410
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12411
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12412
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12413
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12414
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12415
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12416
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12417
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12418
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12419
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12420
                    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
 12421
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12422
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12423
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12424
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12425
                        function_name = (symbol_c*)(new pragma_c("__time_mul"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12426
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12427
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12428
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12429
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12430
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12431
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12432
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12433
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12434
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12435
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12436
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12437
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12438
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12439
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12440
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12441
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12442
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12443
    }/*function_mul*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12444
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12445
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12446
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12447
 *SUB
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12448
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12449
    case function_sub :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12450
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12451
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12452
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12453
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12454
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12455
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12456
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12457
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12458
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12459
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12460
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12461
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12462
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12463
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12464
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12465
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12466
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12467
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12468
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12469
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12470
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12471
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12472
                    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
 12473
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12474
                    if(search_expression_type->is_num_type(IN2_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
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12477
                        function_name = (symbol_c*)(new pragma_c("__sub_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12478
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12479
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12480
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12481
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12482
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12483
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12484
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12485
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12486
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12487
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12488
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12489
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12490
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12491
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12492
            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
 12493
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12494
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12495
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12496
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12497
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12498
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12499
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12500
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12501
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12502
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12503
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12504
                    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
 12505
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12506
                    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
 12507
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12508
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12509
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12510
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12511
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12512
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12513
                        break;
70
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
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12518
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12519
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12520
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12521
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12522
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12523
            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
 12524
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12525
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12526
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12527
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12528
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12529
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12530
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12531
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12532
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12533
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12534
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12535
                    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
 12536
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12537
                    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
 12538
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12539
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12540
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12541
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12542
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12543
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12544
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12545
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12546
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12547
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12548
                    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
 12549
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12550
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12551
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12552
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12553
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12554
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12555
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12556
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12557
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12558
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12559
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12560
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12561
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12562
                
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
            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
 12566
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12567
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12568
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12569
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12570
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12571
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12572
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12573
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12574
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12575
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12576
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12577
                    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
 12578
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12579
                    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
 12580
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12581
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12582
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12583
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12584
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12585
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12586
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12587
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12588
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12589
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12590
                    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
 12591
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12592
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12593
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12594
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12595
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12596
                        symbol_c * return_type_symbol = &search_constant_type_c::tod_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12597
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12598
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12599
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12600
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12601
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12602
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12603
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12604
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12605
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12606
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12607
            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
 12608
            {
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12612
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12613
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12614
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12615
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12616
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12617
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12618
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12619
                    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
 12620
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12621
                    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
 12622
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12623
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12624
                        function_name = (symbol_c*)(new pragma_c("__time_sub"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12625
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12626
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12627
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12628
                        break;
70
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
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12632
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12633
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12634
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12635
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12636
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12637
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12638
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12639
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12640
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12641
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12642
    }/*function_sub*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12643
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12644
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12645
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12646
 *DIV
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12647
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12648
    case function_div :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12649
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12650
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12651
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12652
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12653
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12654
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12655
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12656
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12657
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12658
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12659
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12660
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12661
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12662
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12663
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12664
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12665
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12666
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12667
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12668
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12669
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12670
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12671
                    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
 12672
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12673
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12674
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12675
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12676
                        function_name = (symbol_c*)(new pragma_c("__div_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12677
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12678
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12679
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12680
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12681
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12682
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12683
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12684
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12685
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12686
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12687
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12688
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12689
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12690
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12691
            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
 12692
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12693
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12694
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12695
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12696
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12697
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12698
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12699
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12700
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12701
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12702
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12703
                    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
 12704
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12705
                    if(search_expression_type->is_num_type(IN2_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
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12708
                        function_name = (symbol_c*)(new pragma_c("__time_div"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12709
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12710
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12711
                        symbol_c * return_type_symbol = &search_constant_type_c::time_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12712
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12713
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12714
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12715
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12716
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12717
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12718
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12719
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12720
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12721
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12722
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12723
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12724
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12725
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12726
    }/*function_div*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12727
    break;
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
 *MOD
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12731
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12732
    case function_mod :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12733
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12734
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12735
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12736
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12737
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12738
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12739
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12740
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12741
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12742
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12743
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12744
            {
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12748
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12749
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12750
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12751
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12752
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12753
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12754
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12755
                    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
 12756
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12757
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12758
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12759
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12760
                        function_name = (symbol_c*)(new pragma_c("__mod_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12761
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12762
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12763
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12764
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12765
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12766
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12767
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12768
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12769
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12770
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12771
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12772
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12773
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12774
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12775
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12776
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12777
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12778
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12779
    }/*function_mod*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12780
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12781
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12782
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12783
 *EXPT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12784
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12785
    case function_expt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12786
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12787
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12788
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12789
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12790
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12791
            symbol_c *IN1_param_value = &this->default_variable_name;
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 *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12794
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12795
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12796
            if(search_expression_type->is_num_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12797
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12798
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12799
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12800
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12801
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12802
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12803
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12804
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12805
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12806
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12807
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12808
                    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
 12809
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12810
                    if(search_expression_type->is_num_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12811
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12812
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12813
                        function_name = (symbol_c*)(new pragma_c("pow"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12814
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12815
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12816
                        symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12817
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12818
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12819
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12820
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12821
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12822
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12823
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12824
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12825
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12826
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12827
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12828
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12829
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12830
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12831
    }/*function_expt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12832
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12833
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12834
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12835
 *MOVE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12836
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12837
    case function_move :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12838
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12839
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12840
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_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12843
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12844
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12845
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12846
            last_type_symbol = param_data_type;
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_num_type(IN_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
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12851
                function_name = (symbol_c*)(new pragma_c("__move_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12852
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12853
                symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12854
                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12855
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12856
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12857
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12858
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12859
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12860
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12861
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12862
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12863
    }/*function_move*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12864
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12865
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12866
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12867
 *SHL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12868
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12869
    case function_shl :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12870
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12871
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12872
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12873
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12874
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12875
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12876
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12877
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12878
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12879
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12880
            if(search_expression_type->is_binary_type(IN_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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12884
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12885
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12886
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12887
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12888
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12889
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12890
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12891
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12892
                    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
 12893
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12894
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12895
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12896
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12897
                        function_name = (symbol_c*)(new pragma_c("__shl_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12898
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12899
                        ADD_PARAM_LIST(N_param_value, N_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12900
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12901
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12902
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12903
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12904
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12905
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12906
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12907
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12908
                }
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
    }/*function_shl*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12917
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12918
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12919
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12920
 *SHR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12921
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12922
    case function_shr :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12923
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12924
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12925
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12926
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12927
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12928
            symbol_c *IN_param_value = &this->default_variable_name;
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 *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12931
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12932
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12933
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12934
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12935
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12936
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12937
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12938
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12939
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12940
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12941
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12942
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12943
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12944
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12945
                    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
 12946
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12947
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12948
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12949
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12950
                        function_name = (symbol_c*)(new pragma_c("__shr_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12951
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12952
                        ADD_PARAM_LIST(N_param_value, N_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12953
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12954
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12955
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12956
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12957
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12958
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 12959
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12960
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12961
                }
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
    }/*function_shr*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12970
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12971
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12972
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12973
 *ROR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12974
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12975
    case function_ror :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12976
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12977
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12978
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12979
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12980
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12981
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12982
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12983
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12984
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12985
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12986
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12987
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12988
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12989
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12990
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12991
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12992
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12993
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12994
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12995
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12996
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12997
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 12998
                    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
 12999
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13000
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13001
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13002
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13003
                        function_name = (symbol_c*)(new pragma_c("__ror_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13004
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13005
                        ADD_PARAM_LIST(N_param_value, N_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13006
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13007
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13008
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13009
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13010
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13011
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13012
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13013
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13014
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13015
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13016
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13017
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13018
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13019
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13020
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13021
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13022
    }/*function_ror*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13023
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13024
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13025
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13026
 *ROL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13027
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13028
    case function_rol :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13029
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13030
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13031
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13032
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13033
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13034
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13035
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13036
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13037
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13038
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13039
            if(search_expression_type->is_nbinary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13040
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13041
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13042
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13043
                    identifier_c param_name("N");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13044
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13045
                    symbol_c *N_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13046
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13047
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13048
                    if (N_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13049
                      N_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13050
                    symbol_c *N_type_symbol = search_expression_type->get_type(N_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13051
                    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
 13052
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13053
                    if(search_expression_type->is_integer_type(N_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13054
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13055
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13056
                        function_name = (symbol_c*)(new pragma_c("__rol_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13057
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13058
                        ADD_PARAM_LIST(N_param_value, N_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13059
                        symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13060
                        function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13061
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13062
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13063
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13064
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13065
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13066
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13070
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13071
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13072
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13073
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13074
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13075
    }/*function_rol*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13076
    break;
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
 *AND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13080
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13081
    case function_and :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13082
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13083
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13084
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13085
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13086
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13087
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13088
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13089
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13090
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13091
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13092
            if(search_expression_type->is_binary_type(IN1_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
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13095
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13096
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13097
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13098
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13099
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13100
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13101
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13102
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13103
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13104
                    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
 13105
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13106
                    if(search_expression_type->is_binary_type(IN2_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
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13109
                        function_name = (symbol_c*)(new pragma_c("__and_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13110
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13111
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13112
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13113
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13114
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13115
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13116
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13117
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13118
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13119
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13120
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13121
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13122
                            identifier_c param_name(my_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_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13125
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13126
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13127
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13128
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13129
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13130
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13131
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13132
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13133
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13134
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13135
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
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
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13139
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13140
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13141
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13142
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13143
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13144
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13145
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13146
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13147
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13151
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13152
            ERROR;
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
    }/*function_and*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13156
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13157
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13158
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13159
 *OR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13160
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13161
    case function_or :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13162
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13163
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13164
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13165
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13166
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13167
            symbol_c *IN1_param_value = &this->default_variable_name;
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 *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13170
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13171
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13172
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13173
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13174
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13175
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13176
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13177
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13178
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13179
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13180
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13181
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13182
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13183
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13184
                    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
 13185
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13186
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13187
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13188
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13189
                        function_name = (symbol_c*)(new pragma_c("__or_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13190
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13191
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13192
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13193
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13194
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13195
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13196
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13197
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13198
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13199
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13200
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13201
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13202
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13203
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13204
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13205
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13206
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13207
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13208
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13209
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13210
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13211
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13212
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13213
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13214
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13215
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13216
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13217
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13218
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13219
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13220
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13221
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13222
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13223
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13224
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13225
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13226
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13227
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13228
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13229
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13230
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13231
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13232
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13233
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13234
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13235
    }/*function_or*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13236
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13237
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13238
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13239
 *XOR
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13240
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13241
    case function_xor :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13242
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13243
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13244
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13245
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13246
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13247
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13248
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13249
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13250
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13251
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13252
            if(search_expression_type->is_binary_type(IN1_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13253
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13254
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13255
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13256
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13257
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13258
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13259
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13260
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13261
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13262
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13263
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13264
                    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
 13265
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13266
                    if(search_expression_type->is_binary_type(IN2_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13267
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13268
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13269
                        function_name = (symbol_c*)(new pragma_c("__xor_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13270
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13271
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13272
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13273
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13274
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13275
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13276
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13277
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13278
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13279
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13280
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13281
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13282
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13283
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13284
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13285
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13286
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13287
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13288
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13289
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13290
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13291
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13292
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13293
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13294
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13295
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13296
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13297
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13298
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13299
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13300
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13301
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13302
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13303
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13304
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13305
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13306
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13307
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13308
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13309
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13310
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13311
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13312
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13313
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13314
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13315
    }/*function_xor*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13316
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13317
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13318
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13319
 *NOT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13320
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13321
    case function_not :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13322
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13323
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13324
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13325
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13326
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13327
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13328
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13329
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13330
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13331
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13332
            if(search_expression_type->is_binary_type(IN_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13333
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13334
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13335
                function_name = (symbol_c*)(new pragma_c("__not_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13336
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13337
                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13338
                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13339
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13340
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13341
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13342
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13343
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13344
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13345
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13346
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13347
    }/*function_not*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13348
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13349
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13350
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13351
 *SEL
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13352
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13353
    case function_sel :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13354
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13355
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13356
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13357
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13358
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13359
            symbol_c *G_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13360
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13361
            symbol_c *G_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13362
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13363
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13364
            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
 13365
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13366
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13367
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13368
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13369
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13370
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13371
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13372
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13373
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13374
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13375
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13376
                    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
 13377
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13378
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13379
                    {
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("IN1");
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 *IN1_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 (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13388
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13389
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_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(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
 13391
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13392
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13393
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13394
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13395
                                function_name = (symbol_c*)(new pragma_c("__sel_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13396
                                ADD_PARAM_LIST(G_param_value, G_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13397
                                ADD_PARAM_LIST(IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13398
                                ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13399
                                symbol_c * return_type_symbol = last_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13400
                                function_type_suffix = IN0_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13401
                                break;
70
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
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13405
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13406
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13407
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13408
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13409
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13410
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13411
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13412
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13416
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13417
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13418
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13419
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13420
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13421
    }/*function_sel*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13422
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13423
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13424
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13425
 *MAX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13426
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13427
    case function_max :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13428
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13429
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13430
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13431
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13432
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13433
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13434
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13435
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13436
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13437
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13438
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13439
            {
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13443
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13444
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13445
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13446
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13447
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13448
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13449
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13450
                    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
 13451
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13452
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13453
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13454
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13455
                        function_name = (symbol_c*)(new pragma_c("__max_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13456
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13457
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13458
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13459
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13460
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13461
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13462
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13463
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13464
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13465
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13466
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13467
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13468
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13469
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13470
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13471
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13472
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13473
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13474
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13475
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13476
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13477
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13478
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_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
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13481
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13482
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13483
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13484
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13485
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13486
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13487
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13488
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13489
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13490
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13491
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13492
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13496
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13497
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13498
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13499
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13500
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13501
    }/*function_max*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13502
    break;
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
 *MIN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13506
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13507
    case function_min :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13508
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13509
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13510
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13511
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13512
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13513
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13514
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13515
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13516
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13517
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13518
            
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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13522
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13523
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13524
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13525
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13526
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13527
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13528
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13529
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13530
                    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
 13531
                    
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
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13535
                        function_name = (symbol_c*)(new pragma_c("__min_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13536
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13537
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13538
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13539
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13540
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13541
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13542
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13543
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13544
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13545
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13546
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13547
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13548
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13549
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13550
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13551
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13552
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13553
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13554
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13555
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13556
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13557
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13558
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13559
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13560
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13561
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13562
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13563
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13564
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13565
                        symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13566
                        function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13567
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13568
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13569
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13570
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13571
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13572
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13573
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13574
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13575
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13576
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13577
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13578
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13579
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13580
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13581
    }/*function_min*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13582
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13583
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13584
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13585
 *LIMIT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13586
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13587
    case function_limit :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13588
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13589
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13590
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_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13593
            symbol_c *MN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13594
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13595
            symbol_c *MN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13596
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13597
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13598
            
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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13602
                    identifier_c param_name("IN");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13603
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13604
                    symbol_c *IN_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13605
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13606
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13607
                    if (IN_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13608
                      IN_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13609
                    symbol_c *IN_type_symbol = search_expression_type->get_type(IN_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13610
                    last_type_symbol = last_type_symbol && search_expression_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
 13611
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13612
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13613
                    {
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
                            identifier_c param_name("MX");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13617
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13618
                            symbol_c *MX_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13619
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13620
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13621
                            if (MX_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13622
                              MX_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13623
                            symbol_c *MX_type_symbol = search_expression_type->get_type(MX_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13624
                            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
 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
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13628
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13629
                                function_name = (symbol_c*)(new pragma_c("__limit_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13630
                                ADD_PARAM_LIST(MN_param_value, MN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13631
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13632
                                ADD_PARAM_LIST(MX_param_value, MX_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13633
                                symbol_c * return_type_symbol = IN_type_symbol;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13634
                                function_type_suffix = IN_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13635
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13636
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13637
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13638
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13639
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13640
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13641
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13642
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13643
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13644
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13645
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13646
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13647
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13648
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13649
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13650
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13651
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13652
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13653
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13654
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13655
    }/*function_limit*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13656
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13657
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13658
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13659
 *MUX
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13660
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13661
    case function_mux :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13662
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13663
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13664
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13665
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13666
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13667
            symbol_c *K_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13668
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13669
            symbol_c *K_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13670
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13671
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13672
            if(search_expression_type->is_integer_type(K_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13673
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13674
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13675
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13676
                    identifier_c param_name("IN0");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13677
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13678
                    symbol_c *IN0_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13679
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13680
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13681
                    if (IN0_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13682
                      IN0_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13683
                    symbol_c *IN0_type_symbol = search_expression_type->get_type(IN0_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13684
                    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
 13685
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13686
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13687
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13688
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13689
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13690
                            identifier_c param_name("IN1");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13691
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13692
                            symbol_c *IN1_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13693
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13694
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13695
                            if (IN1_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13696
                              IN1_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13697
                            symbol_c *IN1_type_symbol = search_expression_type->get_type(IN1_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13698
                            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
 13699
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13700
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13701
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13702
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13703
                                function_name = (symbol_c*)(new pragma_c("__mux_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13704
                                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13705
                                char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13706
                                sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13707
                                ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13708
                                ADD_PARAM_LIST(K_param_value, K_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13709
                                ADD_PARAM_LIST(IN0_param_value, IN0_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13710
                                ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13711
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13712
                                int base_num = 2;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13713
                                symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13714
                                do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13715
                                    char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13716
                                    sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13717
                                    identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13718
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13719
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13720
                                    param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13721
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13722
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13723
                                    if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13724
                                      param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13725
                                    if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13726
                                        symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13727
                                        last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13728
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13729
                                        /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13730
                                        ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
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
                                }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13734
                                symbol_c * return_type_symbol = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13735
                                function_type_suffix = return_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13736
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13737
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13738
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13739
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13740
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13741
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13742
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13743
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13744
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13745
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13746
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13747
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13748
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13749
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13750
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13751
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13752
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13753
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13754
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13755
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13756
    }/*function_mux*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13757
    break;
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
 *GT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13761
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13762
    case function_gt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13763
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13764
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13765
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13766
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13767
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13768
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13769
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13770
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13771
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13772
            
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
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13776
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13777
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13778
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13779
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13780
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13781
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13782
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13783
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13784
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13785
                    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
 13786
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13787
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13788
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13789
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13790
                        function_name = (symbol_c*)(new pragma_c("__gt_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13791
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13792
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13793
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13794
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13795
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13796
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13797
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13798
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13799
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13800
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13801
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13802
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13803
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13804
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13805
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13806
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13807
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13808
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13809
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13810
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13811
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13812
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13813
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13814
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13815
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13816
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
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
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13820
                        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
 13821
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13822
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13823
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13824
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13825
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13826
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13827
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13828
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13829
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13830
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13831
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13832
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13833
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13834
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13835
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13836
    }/*function_gt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13837
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13838
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13839
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13840
 *GE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13841
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13842
    case function_ge :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13843
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13844
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13848
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13849
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13850
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13851
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13852
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13853
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13854
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13855
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13856
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13857
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13858
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13859
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13860
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13861
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13862
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13863
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13864
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13865
                    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
 13866
                    
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
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13870
                        function_name = (symbol_c*)(new pragma_c("__ge_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13871
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13872
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13873
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13874
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13875
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13876
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13877
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13878
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13879
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13880
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13881
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13882
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13883
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13884
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13885
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13886
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13887
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13888
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13889
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13890
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13891
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13892
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13893
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13894
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13895
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13896
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13897
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13898
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13899
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13900
                        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
 13901
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13902
                        break;
70
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
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13906
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13907
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13908
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13909
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13910
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13911
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13912
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13913
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13914
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13915
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13916
    }/*function_ge*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13917
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13918
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13919
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13920
 *EQ
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13921
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13922
    case function_eq :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13923
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13924
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13925
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13926
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13927
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13928
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13929
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13930
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13931
            last_type_symbol = param_data_type;
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
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13935
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13936
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13937
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13938
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13939
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13940
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13941
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13942
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13943
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13944
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13945
                    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
 13946
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13947
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13948
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13949
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13950
                        function_name = (symbol_c*)(new pragma_c("__eq_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13951
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13952
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13953
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13954
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13955
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13956
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13957
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13958
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13959
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13960
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13961
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13962
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13963
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13964
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13965
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13966
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13967
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13968
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13969
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13970
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13971
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13972
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13973
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_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
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13976
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13977
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13978
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13979
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13980
                        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
 13981
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13982
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13983
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13984
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13985
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13986
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13987
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13988
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 13992
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13993
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13994
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13995
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13996
    }/*function_eq*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13997
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13998
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 13999
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14000
 *LT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14001
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14002
    case function_lt :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14003
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14004
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14005
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14006
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14007
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14008
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14009
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14010
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14011
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14012
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14013
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14014
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14015
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14016
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14017
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14018
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14019
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14020
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14021
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14022
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14023
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14024
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14025
                    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
 14026
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14027
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14028
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14029
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14030
                        function_name = (symbol_c*)(new pragma_c("__lt_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14031
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14032
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14033
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14034
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14035
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14036
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14037
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14038
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14039
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14040
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14041
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14042
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14043
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14044
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14045
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14046
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14047
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14048
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14049
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14050
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14051
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14052
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14053
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14054
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14055
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14056
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14057
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14058
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14059
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14060
                        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
 14061
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14062
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14063
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14064
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14065
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14066
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14067
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14068
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14072
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14073
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14074
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14075
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14076
    }/*function_lt*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14077
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14078
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14079
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14080
 *LE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14081
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14082
    case function_le :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14083
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14084
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14085
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14086
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14087
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14088
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14089
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14090
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14091
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14092
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14093
            
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14098
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14099
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14100
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14101
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14102
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14103
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14104
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14105
                    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
 14106
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14107
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14108
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14109
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14110
                        function_name = (symbol_c*)(new pragma_c("__le_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14111
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14112
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14113
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14114
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14115
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14116
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14117
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14118
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14119
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14120
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14121
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14122
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14123
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14124
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14125
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14126
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14127
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14128
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14129
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14130
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14131
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14132
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14133
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14134
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14135
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14136
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14137
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14138
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14139
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14140
                        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
 14141
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14142
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14143
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14144
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14145
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14146
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14147
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14148
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14149
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14150
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14151
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14152
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14153
            ERROR;
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
    }/*function_le*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14157
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14158
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14159
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14160
 *NE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14161
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14162
    case function_ne :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14163
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14164
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14165
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14166
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14167
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14168
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14169
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14170
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14171
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14172
            
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
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14176
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14177
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14178
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14179
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14180
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14181
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14182
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14183
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14184
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14185
                    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
 14186
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14187
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14188
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14189
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14190
                        function_name = (symbol_c*)(new pragma_c("__ne_"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14191
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14192
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14193
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14194
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14195
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14196
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14197
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14198
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14199
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14200
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14201
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14202
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14203
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14204
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14205
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14206
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14207
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14208
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14209
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14210
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14211
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14212
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14213
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14214
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14215
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14216
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14217
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14218
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14219
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14220
                        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
 14221
                        function_type_suffix = last_type_symbol;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14222
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14223
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14224
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14225
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14226
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14227
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14228
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14229
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14230
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14231
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14232
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14233
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14234
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14235
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14236
    }/*function_ne*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14237
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14238
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14239
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14240
 *LEN
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14241
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14242
    case function_len :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14243
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14244
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14245
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14246
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14247
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14248
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14249
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14250
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14251
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14252
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14253
            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
 14254
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14255
        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14256
                function_name = (symbol_c*)(new pragma_c("__len"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14257
                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14258
                symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14259
                break;
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14260
                
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14261
            }
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14262
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14263
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14264
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14265
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14266
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14267
    }/*function_len*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14268
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14269
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14270
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14271
 *LEFT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14272
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14273
    case function_left :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14274
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14275
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14276
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14277
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14278
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14279
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14280
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14281
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14282
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14283
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14284
            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
 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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14288
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14289
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14290
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14291
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14292
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14293
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14294
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14295
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14296
                    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
 14297
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14298
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14299
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14300
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14301
                        function_name = (symbol_c*)(new pragma_c("__left"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14302
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14303
                        ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14304
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14305
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14306
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14307
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14308
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14309
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14310
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14311
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14315
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14316
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14317
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14318
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14319
    }/*function_left*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14320
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14321
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14322
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14323
 *RIGHT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14324
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14325
    case function_right :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14326
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14327
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14331
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14332
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14333
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14334
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14335
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14336
            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
 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
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14341
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14342
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14343
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14344
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14345
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14346
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14347
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14348
                    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
 14349
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14350
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14351
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14352
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14353
                        function_name = (symbol_c*)(new pragma_c("__right"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14354
                        ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14355
                        ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14356
                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14357
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14358
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14359
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14360
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14361
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14362
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14363
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14364
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14365
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14366
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14367
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14368
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14369
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14370
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14371
    }/*function_right*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14372
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14373
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14374
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14375
 *MID
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14376
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14377
    case function_mid :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14378
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14379
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14383
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14384
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14385
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14386
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14387
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14388
            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
 14389
            {
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
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14393
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14394
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14395
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14396
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14397
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14398
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14399
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14400
                    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
 14401
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14402
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14403
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14404
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14405
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14406
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14407
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14408
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14409
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14410
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14411
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14412
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14413
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14414
                            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
 14415
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14416
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14417
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14418
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14419
                                function_name = (symbol_c*)(new pragma_c("__mid"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14420
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14421
                                ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14422
                                ADD_PARAM_LIST(P_param_value, P_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14423
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14424
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14425
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14426
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14427
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14428
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14429
                            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14430
                        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14431
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14432
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14433
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14434
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14435
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14436
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14437
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14438
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14439
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14440
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14441
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14442
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14443
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14444
    }/*function_mid*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14445
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14446
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14447
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14448
 *CONCAT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14449
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14450
    case function_concat :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14451
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14452
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14456
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14457
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14458
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14459
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14460
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14461
            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
 14462
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14463
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14464
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14465
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14466
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14467
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14468
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14469
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14470
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14471
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14472
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14473
                    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
 14474
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14475
                    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
 14476
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14477
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14478
                        function_name = (symbol_c*)(new pragma_c("__time_add"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14479
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14480
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14481
                        symbol_c * return_type_symbol = &search_constant_type_c::dt_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14482
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14483
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14484
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14485
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14486
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14487
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14488
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14489
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14490
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14491
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14492
            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
 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
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14496
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14497
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14498
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14499
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14500
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14501
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14502
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14503
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14504
                    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
 14505
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14506
                    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
 14507
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14508
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14509
                        function_name = (symbol_c*)(new pragma_c("__concat"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14510
                        
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14511
                        char nb_param_str[10];
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14512
                        sprintf(nb_param_str, "%d", nb_param);
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14513
                        ADD_PARAM_LIST((symbol_c*)(new integer_c(nb_param_str)), (symbol_c*)(new int_type_name_c()), function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14514
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14515
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14516
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14517
                        int base_num = 3;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14518
                        symbol_c *param_value = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14519
                        do{
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14520
                            char my_name[10];
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14521
                            sprintf(my_name, "IN%d", base_num++);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14522
                            identifier_c param_name(my_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14523
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14524
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14525
                            param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14526
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14527
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14528
                            if (param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14529
                              param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14530
                            if (param_value != NULL){
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14531
                                symbol_c *current_type_symbol = search_expression_type->get_type(param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14532
                                last_type_symbol = last_type_symbol && search_expression_type->is_same_type(current_type_symbol, last_type_symbol) ? search_expression_type->common_type(current_type_symbol, last_type_symbol) : current_type_symbol ;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14533
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14534
                                /*Function specific CODE */
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14535
                                ADD_PARAM_LIST(param_value, current_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14536
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14537
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14538
                        }while(param_value != NULL);
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14539
                        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
 14540
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14541
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14542
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14543
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14544
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14545
                    ERROR;
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
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14549
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14550
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14551
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14552
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14553
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14554
    }/*function_concat*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14555
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14556
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14557
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14558
 *INSERT
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14559
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14560
    case function_insert :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14561
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14562
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14563
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14564
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14565
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14566
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14567
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14568
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14569
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14570
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14571
            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
 14572
            {
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
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14576
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14577
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14578
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14579
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14580
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14581
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14582
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14583
                    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
 14584
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14585
                    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
 14586
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14587
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14588
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14589
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14590
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14591
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14592
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14593
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14594
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14595
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14596
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14597
                            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
 14598
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14599
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14600
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14601
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14602
                                function_name = (symbol_c*)(new pragma_c("__insert"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14603
                                ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14604
                                ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14605
                                ADD_PARAM_LIST(P_param_value, P_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14606
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14607
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14608
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14609
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14610
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14611
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14612
                            ERROR;
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
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14616
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14617
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14618
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14619
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14620
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14621
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14622
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14623
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14624
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14625
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14626
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14627
    }/*function_insert*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14628
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14629
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14630
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14631
 *DELETE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14632
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14633
    case function_delete :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14634
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14635
        symbol_c *last_type_symbol = NULL;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14636
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14637
        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14638
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14639
            symbol_c *IN_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14640
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14641
            symbol_c *IN_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14642
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14643
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14644
            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
 14645
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14646
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14647
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14648
                    identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14649
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14650
                    symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14651
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14652
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14653
                    if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14654
                      L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14655
                    symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14656
                    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
 14657
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14658
                    if(search_expression_type->is_integer_type(L_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14659
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14660
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14661
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14662
                            identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14663
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14664
                            symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14665
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14666
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14667
                            if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14668
                              P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14669
                            symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14670
                            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
 14671
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14672
                            if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14673
                            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14674
                        
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14675
                                function_name = (symbol_c*)(new pragma_c("__delete"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14676
                                ADD_PARAM_LIST(IN_param_value, IN_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14677
                                ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14678
                                ADD_PARAM_LIST(P_param_value, P_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14679
                                symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14680
                                break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14681
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14682
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14683
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14684
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14685
                            ERROR;
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
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14689
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14690
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14691
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14692
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14693
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14694
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14695
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14696
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14697
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14698
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14699
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14700
    }/*function_delete*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14701
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14702
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14703
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14704
 *REPLACE
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14705
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14706
    case function_replace :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14707
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14708
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14712
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14713
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14714
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14715
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14716
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14717
            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
 14718
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14719
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14720
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14721
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14722
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14723
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14724
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14725
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14726
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14727
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14728
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14729
                    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
 14730
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14731
                    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
 14732
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14733
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14734
                        {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14735
                            identifier_c param_name("L");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14736
                            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14737
                            symbol_c *L_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14738
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14739
                            /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14740
                            if (L_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14741
                              L_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14742
                            symbol_c *L_type_symbol = search_expression_type->get_type(L_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14743
                            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
 14744
                            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14745
                            if(search_expression_type->is_integer_type(L_type_symbol))
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
                                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14749
                                    identifier_c param_name("P");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14750
                                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14751
                                    symbol_c *P_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14752
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14753
                                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14754
                                    if (P_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14755
                                      P_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14756
                                    symbol_c *P_type_symbol = search_expression_type->get_type(P_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14757
                                    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
 14758
                                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14759
                                    if(search_expression_type->is_integer_type(P_type_symbol))
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14760
                                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14761
                                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14762
                                        function_name = (symbol_c*)(new pragma_c("__replace"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14763
                                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14764
                                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14765
                                        ADD_PARAM_LIST(L_param_value, L_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14766
                                        ADD_PARAM_LIST(P_param_value, P_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14767
                                        symbol_c * return_type_symbol = &search_constant_type_c::string_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14768
                                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14769
                                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14770
                                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14771
                                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14772
                                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14773
                                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14774
                                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14775
                                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14776
                            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14777
                            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14778
                            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14779
                            ERROR;
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
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14784
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14785
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14786
                }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14787
                
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14788
            }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14789
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14790
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14791
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14792
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14793
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14794
    }/*function_replace*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14795
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14796
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14797
/****
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14798
 *FIND
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14799
 */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14800
    case function_find :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14801
    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14802
        symbol_c *last_type_symbol = NULL;
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
            /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14806
            symbol_c *IN1_param_value = &this->default_variable_name;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14807
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14808
            symbol_c *IN1_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14809
            last_type_symbol = param_data_type;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14810
            
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14811
            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
 14812
            {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14813
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14814
                {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14815
                    identifier_c param_name("IN2");
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14816
                    /* Get the value from a foo(<param_name> = <param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14817
                    symbol_c *IN2_param_value = function_call_param_iterator.search(&param_name);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14818
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14819
                    /* Get the value from a foo(<param_value>) style call */
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14820
                    if (IN2_param_value == NULL)
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14821
                      IN2_param_value = function_call_param_iterator.next();
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14822
                    symbol_c *IN2_type_symbol = search_expression_type->get_type(IN2_param_value);
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14823
                    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
 14824
                    
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14825
                    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
 14826
                    {
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14827
                
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14828
                        function_name = (symbol_c*)(new pragma_c("__find"));
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14829
                        ADD_PARAM_LIST(IN1_param_value, IN1_type_symbol, function_param_iterator_c::direction_in)
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14830
                        ADD_PARAM_LIST(IN2_param_value, IN2_type_symbol, function_param_iterator_c::direction_in)
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14831
                        symbol_c * return_type_symbol = &search_constant_type_c::int_type_name;
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14832
                        break;
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14833
                        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14834
                    }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14835
                    
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14836
                    
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14837
                    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14838
                }
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
            
149
05ca171a3d57 Adding support for EN/ENO in standard functions
lbessard
parents: 70
diff changeset
 14842
            
70
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14843
            ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14844
        }
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14845
        
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14846
    }/*function_find*/
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14847
    break;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14848
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14849
    case function_none :
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14850
    ERROR;
e1f0ebd2d9ec Change generate_cc to generate_c
lbessard
parents:
diff changeset
 14851
}